StringUtils.java

1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *      http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
package org.apache.commons.lang3;
18
19
import java.io.UnsupportedEncodingException;
20
import java.nio.charset.Charset;
21
import java.text.Normalizer;
22
import java.util.ArrayList;
23
import java.util.Arrays;
24
import java.util.Iterator;
25
import java.util.List;
26
import java.util.Locale;
27
import java.util.Objects;
28
import java.util.regex.Pattern;
29
30
/**
31
 * <p>Operations on {@link java.lang.String} that are
32
 * {@code null} safe.</p>
33
 *
34
 * <ul>
35
 *  <li><b>IsEmpty/IsBlank</b>
36
 *      - checks if a String contains text</li>
37
 *  <li><b>Trim/Strip</b>
38
 *      - removes leading and trailing whitespace</li>
39
 *  <li><b>Equals/Compare</b>
40
 *      - compares two strings null-safe</li>
41
 *  <li><b>startsWith</b>
42
 *      - check if a String starts with a prefix null-safe</li>
43
 *  <li><b>endsWith</b>
44
 *      - check if a String ends with a suffix null-safe</li>
45
 *  <li><b>IndexOf/LastIndexOf/Contains</b>
46
 *      - null-safe index-of checks
47
 *  <li><b>IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut</b>
48
 *      - index-of any of a set of Strings</li>
49
 *  <li><b>ContainsOnly/ContainsNone/ContainsAny</b>
50
 *      - does String contains only/none/any of these characters</li>
51
 *  <li><b>Substring/Left/Right/Mid</b>
52
 *      - null-safe substring extractions</li>
53
 *  <li><b>SubstringBefore/SubstringAfter/SubstringBetween</b>
54
 *      - substring extraction relative to other strings</li>
55
 *  <li><b>Split/Join</b>
56
 *      - splits a String into an array of substrings and vice versa</li>
57
 *  <li><b>Remove/Delete</b>
58
 *      - removes part of a String</li>
59
 *  <li><b>Replace/Overlay</b>
60
 *      - Searches a String and replaces one String with another</li>
61
 *  <li><b>Chomp/Chop</b>
62
 *      - removes the last part of a String</li>
63
 *  <li><b>AppendIfMissing</b>
64
 *      - appends a suffix to the end of the String if not present</li>
65
 *  <li><b>PrependIfMissing</b>
66
 *      - prepends a prefix to the start of the String if not present</li>
67
 *  <li><b>LeftPad/RightPad/Center/Repeat</b>
68
 *      - pads a String</li>
69
 *  <li><b>UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize</b>
70
 *      - changes the case of a String</li>
71
 *  <li><b>CountMatches</b>
72
 *      - counts the number of occurrences of one String in another</li>
73
 *  <li><b>IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable</b>
74
 *      - checks the characters in a String</li>
75
 *  <li><b>DefaultString</b>
76
 *      - protects against a null input String</li>
77
 *  <li><b>Rotate</b>
78
 *      - rotate (circular shift) a String</li>
79
 *  <li><b>Reverse/ReverseDelimited</b>
80
 *      - reverses a String</li>
81
 *  <li><b>Abbreviate</b>
82
 *      - abbreviates a string using ellipsis or another given String</li>
83
 *  <li><b>Difference</b>
84
 *      - compares Strings and reports on their differences</li>
85
 *  <li><b>LevenshteinDistance</b>
86
 *      - the number of changes needed to change one String into another</li>
87
 * </ul>
88
 *
89
 * <p>The {@code StringUtils} class defines certain words related to
90
 * String handling.</p>
91
 *
92
 * <ul>
93
 *  <li>null - {@code null}</li>
94
 *  <li>empty - a zero-length string ({@code ""})</li>
95
 *  <li>space - the space character ({@code ' '}, char 32)</li>
96
 *  <li>whitespace - the characters defined by {@link Character#isWhitespace(char)}</li>
97
 *  <li>trim - the characters &lt;= 32 as in {@link String#trim()}</li>
98
 * </ul>
99
 *
100
 * <p>{@code StringUtils} handles {@code null} input Strings quietly.
101
 * That is to say that a {@code null} input will return {@code null}.
102
 * Where a {@code boolean} or {@code int} is being returned
103
 * details vary by method.</p>
104
 *
105
 * <p>A side effect of the {@code null} handling is that a
106
 * {@code NullPointerException} should be considered a bug in
107
 * {@code StringUtils}.</p>
108
 *
109
 * <p>Methods in this class give sample code to explain their operation.
110
 * The symbol {@code *} is used to indicate any input including {@code null}.</p>
111
 *
112
 * <p>#ThreadSafe#</p>
113
 * @see java.lang.String
114
 * @since 1.0
115
 */
116
//@Immutable
117
public class StringUtils {
118
    // Performance testing notes (JDK 1.4, Jul03, scolebourne)
119
    // Whitespace:
120
    // Character.isWhitespace() is faster than WHITESPACE.indexOf()
121
    // where WHITESPACE is a string of all whitespace characters
122
    //
123
    // Character access:
124
    // String.charAt(n) versus toCharArray(), then array[n]
125
    // String.charAt(n) is about 15% worse for a 10K string
126
    // They are about equal for a length 50 string
127
    // String.charAt(n) is about 4 times better for a length 3 string
128
    // String.charAt(n) is best bet overall
129
    //
130
    // Append:
131
    // String.concat about twice as fast as StringBuffer.append
132
    // (not sure who tested this)
133
134
    /**
135
     * A String for a space character.
136
     *
137
     * @since 3.2
138
     */
139
    public static final String SPACE = " ";
140
141
    /**
142
     * The empty String {@code ""}.
143
     * @since 2.0
144
     */
145
    public static final String EMPTY = "";
146
147
    /**
148
     * A String for linefeed LF ("\n").
149
     *
150
     * @see <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.6">JLF: Escape Sequences
151
     *      for Character and String Literals</a>
152
     * @since 3.2
153
     */
154
    public static final String LF = "\n";
155
156
    /**
157
     * A String for carriage return CR ("\r").
158
     *
159
     * @see <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.6">JLF: Escape Sequences
160
     *      for Character and String Literals</a>
161
     * @since 3.2
162
     */
163
    public static final String CR = "\r";
164
165
    /**
166
     * Represents a failed index search.
167
     * @since 2.1
168
     */
169
    public static final int INDEX_NOT_FOUND = -1;
170
171
    /**
172
     * <p>The maximum size to which the padding constant(s) can expand.</p>
173
     */
174
    private static final int PAD_LIMIT = 8192;
175
176
    /**
177
     * <p>{@code StringUtils} instances should NOT be constructed in
178
     * standard programming. Instead, the class should be used as
179
     * {@code StringUtils.trim(" foo ");}.</p>
180
     *
181
     * <p>This constructor is public to permit tools that require a JavaBean
182
     * instance to operate.</p>
183
     */
184
    public StringUtils() {
185
        super();
186
    }
187
188
    // Empty checks
189
    //-----------------------------------------------------------------------
190
    /**
191
     * <p>Checks if a CharSequence is empty ("") or null.</p>
192
     *
193
     * <pre>
194
     * StringUtils.isEmpty(null)      = true
195
     * StringUtils.isEmpty("")        = true
196
     * StringUtils.isEmpty(" ")       = false
197
     * StringUtils.isEmpty("bob")     = false
198
     * StringUtils.isEmpty("  bob  ") = false
199
     * </pre>
200
     *
201
     * <p>NOTE: This method changed in Lang version 2.0.
202
     * It no longer trims the CharSequence.
203
     * That functionality is available in isBlank().</p>
204
     *
205
     * @param cs  the CharSequence to check, may be null
206
     * @return {@code true} if the CharSequence is empty or null
207
     * @since 3.0 Changed signature from isEmpty(String) to isEmpty(CharSequence)
208
     */
209
    public static boolean isEmpty(final CharSequence cs) {
210 3 1. isEmpty : negated conditional → KILLED
2. isEmpty : negated conditional → KILLED
3. isEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return cs == null || cs.length() == 0;
211
    }
212
213
    /**
214
     * <p>Checks if a CharSequence is not empty ("") and not null.</p>
215
     *
216
     * <pre>
217
     * StringUtils.isNotEmpty(null)      = false
218
     * StringUtils.isNotEmpty("")        = false
219
     * StringUtils.isNotEmpty(" ")       = true
220
     * StringUtils.isNotEmpty("bob")     = true
221
     * StringUtils.isNotEmpty("  bob  ") = true
222
     * </pre>
223
     *
224
     * @param cs  the CharSequence to check, may be null
225
     * @return {@code true} if the CharSequence is not empty and not null
226
     * @since 3.0 Changed signature from isNotEmpty(String) to isNotEmpty(CharSequence)
227
     */
228
    public static boolean isNotEmpty(final CharSequence cs) {
229 2 1. isNotEmpty : negated conditional → KILLED
2. isNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return !isEmpty(cs);
230
    }
231
       
232
    /**
233
     * <p>Checks if any of the CharSequences are empty ("") or null.</p>
234
     *
235
     * <pre>
236
     * StringUtils.isAnyEmpty(null)             = true
237
     * StringUtils.isAnyEmpty(null, "foo")      = true
238
     * StringUtils.isAnyEmpty("", "bar")        = true
239
     * StringUtils.isAnyEmpty("bob", "")        = true
240
     * StringUtils.isAnyEmpty("  bob  ", null)  = true
241
     * StringUtils.isAnyEmpty(" ", "bar")       = false
242
     * StringUtils.isAnyEmpty("foo", "bar")     = false
243
     * </pre>
244
     *
245
     * @param css  the CharSequences to check, may be null or empty
246
     * @return {@code true} if any of the CharSequences are empty or null
247
     * @since 3.2
248
     */
249
    public static boolean isAnyEmpty(final CharSequence... css) {
250 1 1. isAnyEmpty : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
251 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
252
      }
253 3 1. isAnyEmpty : changed conditional boundary → KILLED
2. isAnyEmpty : Changed increment from 1 to -1 → KILLED
3. isAnyEmpty : negated conditional → KILLED
      for (final CharSequence cs : css){
254 1 1. isAnyEmpty : negated conditional → KILLED
        if (isEmpty(cs)) {
255 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
256
        }
257
      }
258 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
259
    }
260
261
    /**
262
     * <p>Checks if none of the CharSequences are empty ("") or null.</p>
263
     *
264
     * <pre>
265
     * StringUtils.isNoneEmpty(null)             = false
266
     * StringUtils.isNoneEmpty(null, "foo")      = false
267
     * StringUtils.isNoneEmpty("", "bar")        = false
268
     * StringUtils.isNoneEmpty("bob", "")        = false
269
     * StringUtils.isNoneEmpty("  bob  ", null)  = false
270
     * StringUtils.isNoneEmpty(new String[] {})  = false
271
     * StringUtils.isNoneEmpty(" ", "bar")       = true
272
     * StringUtils.isNoneEmpty("foo", "bar")     = true
273
     * </pre>
274
     *
275
     * @param css  the CharSequences to check, may be null or empty
276
     * @return {@code true} if none of the CharSequences are empty or null
277
     * @since 3.2
278
     */
279
    public static boolean isNoneEmpty(final CharSequence... css) {
280 2 1. isNoneEmpty : negated conditional → KILLED
2. isNoneEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return !isAnyEmpty(css);
281
    }
282
283
    /**
284
     * <p>Checks if all of the CharSequences are empty ("") or null.</p>
285
     *
286
     * <pre>
287
     * StringUtils.isAllEmpty(null)             = true
288
     * StringUtils.isAllEmpty(null, "")         = true
289
     * StringUtils.isAllEmpty(new String[] {})  = true
290
     * StringUtils.isAllEmpty(null, "foo")      = false
291
     * StringUtils.isAllEmpty("", "bar")        = false
292
     * StringUtils.isAllEmpty("bob", "")        = false
293
     * StringUtils.isAllEmpty("  bob  ", null)  = false
294
     * StringUtils.isAllEmpty(" ", "bar")       = false
295
     * StringUtils.isAllEmpty("foo", "bar")     = false
296
     * </pre>
297
     *
298
     * @param css  the CharSequences to check, may be null or empty
299
     * @return {@code true} if all of the CharSequences are empty or null
300
     * @since 3.6
301
     */
302
    public static boolean isAllEmpty(final CharSequence... css) {
303 1 1. isAllEmpty : negated conditional → KILLED
        if (ArrayUtils.isEmpty(css)) {
304 1 1. isAllEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
305
        }
306 3 1. isAllEmpty : changed conditional boundary → KILLED
2. isAllEmpty : Changed increment from 1 to -1 → KILLED
3. isAllEmpty : negated conditional → KILLED
        for (final CharSequence cs : css) {
307 1 1. isAllEmpty : negated conditional → KILLED
            if (isNotEmpty(cs)) {
308 1 1. isAllEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
309
            }
310
        }
311 1 1. isAllEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
312
    }
313
314
    /**
315
     * <p>Checks if a CharSequence is empty (""), null or whitespace only.</p>
316
     * 
317
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
318
     *
319
     * <pre>
320
     * StringUtils.isBlank(null)      = true
321
     * StringUtils.isBlank("")        = true
322
     * StringUtils.isBlank(" ")       = true
323
     * StringUtils.isBlank("bob")     = false
324
     * StringUtils.isBlank("  bob  ") = false
325
     * </pre>
326
     *
327
     * @param cs  the CharSequence to check, may be null
328
     * @return {@code true} if the CharSequence is null, empty or whitespace only
329
     * @since 2.0
330
     * @since 3.0 Changed signature from isBlank(String) to isBlank(CharSequence)
331
     */
332
    public static boolean isBlank(final CharSequence cs) {
333
        int strLen;
334 2 1. isBlank : negated conditional → KILLED
2. isBlank : negated conditional → KILLED
        if (cs == null || (strLen = cs.length()) == 0) {
335 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
336
        }
337 3 1. isBlank : changed conditional boundary → KILLED
2. isBlank : Changed increment from 1 to -1 → KILLED
3. isBlank : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
338 1 1. isBlank : negated conditional → KILLED
            if (Character.isWhitespace(cs.charAt(i)) == false) {
339 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
340
            }
341
        }
342 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
343
    }
344
345
    /**
346
     * <p>Checks if a CharSequence is not empty (""), not null and not whitespace only.</p>
347
     * 
348
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
349
     *
350
     * <pre>
351
     * StringUtils.isNotBlank(null)      = false
352
     * StringUtils.isNotBlank("")        = false
353
     * StringUtils.isNotBlank(" ")       = false
354
     * StringUtils.isNotBlank("bob")     = true
355
     * StringUtils.isNotBlank("  bob  ") = true
356
     * </pre>
357
     *
358
     * @param cs  the CharSequence to check, may be null
359
     * @return {@code true} if the CharSequence is
360
     *  not empty and not null and not whitespace only
361
     * @since 2.0
362
     * @since 3.0 Changed signature from isNotBlank(String) to isNotBlank(CharSequence)
363
     */
364
    public static boolean isNotBlank(final CharSequence cs) {
365 2 1. isNotBlank : negated conditional → KILLED
2. isNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return !isBlank(cs);
366
    }
367
368
    /**
369
     * <p>Checks if any of the CharSequences are empty ("") or null or whitespace only.</p>
370
     * 
371
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
372
     *
373
     * <pre>
374
     * StringUtils.isAnyBlank(null)             = true
375
     * StringUtils.isAnyBlank(null, "foo")      = true
376
     * StringUtils.isAnyBlank(null, null)       = true
377
     * StringUtils.isAnyBlank("", "bar")        = true
378
     * StringUtils.isAnyBlank("bob", "")        = true
379
     * StringUtils.isAnyBlank("  bob  ", null)  = true
380
     * StringUtils.isAnyBlank(" ", "bar")       = true
381
     * StringUtils.isAnyBlank(new String[] {})  = false
382
     * StringUtils.isAnyBlank("foo", "bar")     = false
383
     * </pre>
384
     *
385
     * @param css  the CharSequences to check, may be null or empty
386
     * @return {@code true} if any of the CharSequences are empty or null or whitespace only
387
     * @since 3.2
388
     */
389
    public static boolean isAnyBlank(final CharSequence... css) {
390 1 1. isAnyBlank : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
391 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
392
      }
393 3 1. isAnyBlank : changed conditional boundary → KILLED
2. isAnyBlank : Changed increment from 1 to -1 → KILLED
3. isAnyBlank : negated conditional → KILLED
      for (final CharSequence cs : css){
394 1 1. isAnyBlank : negated conditional → KILLED
        if (isBlank(cs)) {
395 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
396
        }
397
      }
398 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
399
    }
400
401
    /**
402
     * <p>Checks if none of the CharSequences are empty (""), null or whitespace only.</p>
403
     * 
404
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
405
     *
406
     * <pre>
407
     * StringUtils.isNoneBlank(null)             = false
408
     * StringUtils.isNoneBlank(null, "foo")      = false
409
     * StringUtils.isNoneBlank(null, null)       = false
410
     * StringUtils.isNoneBlank("", "bar")        = false
411
     * StringUtils.isNoneBlank("bob", "")        = false
412
     * StringUtils.isNoneBlank("  bob  ", null)  = false
413
     * StringUtils.isNoneBlank(" ", "bar")       = false
414
     * StringUtils.isNoneBlank(new String[] {})  = false
415
     * StringUtils.isNoneBlank("foo", "bar")     = true
416
     * </pre>
417
     *
418
     * @param css  the CharSequences to check, may be null or empty
419
     * @return {@code true} if none of the CharSequences are empty or null or whitespace only
420
     * @since 3.2
421
     */
422
    public static boolean isNoneBlank(final CharSequence... css) {
423 2 1. isNoneBlank : negated conditional → KILLED
2. isNoneBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return !isAnyBlank(css);
424
    }
425
426
    /**
427
     * <p>Checks if all of the CharSequences are empty (""), null or whitespace only.</p>
428
     *
429
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
430
     *
431
     * <pre>
432
     * StringUtils.isAllBlank(null)             = true
433
     * StringUtils.isAllBlank(null, "foo")      = false
434
     * StringUtils.isAllBlank(null, null)       = true
435
     * StringUtils.isAllBlank("", "bar")        = false
436
     * StringUtils.isAllBlank("bob", "")        = false
437
     * StringUtils.isAllBlank("  bob  ", null)  = false
438
     * StringUtils.isAllBlank(" ", "bar")       = false
439
     * StringUtils.isAllBlank("foo", "bar")     = false
440
     * StringUtils.isAllBlank(new String[] {})  = true
441
     * </pre>
442
     *
443
     * @param css  the CharSequences to check, may be null or empty
444
     * @return {@code true} if all of the CharSequences are empty or null or whitespace only
445
     * @since 3.6
446
     */
447
    public static boolean isAllBlank(final CharSequence... css) {
448 1 1. isAllBlank : negated conditional → KILLED
        if (ArrayUtils.isEmpty(css)) {  
449 1 1. isAllBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
450
        }
451 3 1. isAllBlank : changed conditional boundary → KILLED
2. isAllBlank : Changed increment from 1 to -1 → KILLED
3. isAllBlank : negated conditional → KILLED
        for (final CharSequence cs : css) {
452 1 1. isAllBlank : negated conditional → KILLED
            if (isNotBlank(cs)) {
453 1 1. isAllBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
               return false;
454
            }
455
        }
456 1 1. isAllBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
457
    }
458
459
    // Trim
460
    //-----------------------------------------------------------------------
461
    /**
462
     * <p>Removes control characters (char &lt;= 32) from both
463
     * ends of this String, handling {@code null} by returning
464
     * {@code null}.</p>
465
     *
466
     * <p>The String is trimmed using {@link String#trim()}.
467
     * Trim removes start and end characters &lt;= 32.
468
     * To strip whitespace use {@link #strip(String)}.</p>
469
     *
470
     * <p>To trim your choice of characters, use the
471
     * {@link #strip(String, String)} methods.</p>
472
     *
473
     * <pre>
474
     * StringUtils.trim(null)          = null
475
     * StringUtils.trim("")            = ""
476
     * StringUtils.trim("     ")       = ""
477
     * StringUtils.trim("abc")         = "abc"
478
     * StringUtils.trim("    abc    ") = "abc"
479
     * </pre>
480
     *
481
     * @param str  the String to be trimmed, may be null
482
     * @return the trimmed string, {@code null} if null String input
483
     */
484
    public static String trim(final String str) {
485 2 1. trim : negated conditional → KILLED
2. trim : mutated return of Object value for org/apache/commons/lang3/StringUtils::trim to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? null : str.trim();
486
    }
487
488
    /**
489
     * <p>Removes control characters (char &lt;= 32) from both
490
     * ends of this String returning {@code null} if the String is
491
     * empty ("") after the trim or if it is {@code null}.
492
     *
493
     * <p>The String is trimmed using {@link String#trim()}.
494
     * Trim removes start and end characters &lt;= 32.
495
     * To strip whitespace use {@link #stripToNull(String)}.</p>
496
     *
497
     * <pre>
498
     * StringUtils.trimToNull(null)          = null
499
     * StringUtils.trimToNull("")            = null
500
     * StringUtils.trimToNull("     ")       = null
501
     * StringUtils.trimToNull("abc")         = "abc"
502
     * StringUtils.trimToNull("    abc    ") = "abc"
503
     * </pre>
504
     *
505
     * @param str  the String to be trimmed, may be null
506
     * @return the trimmed String,
507
     *  {@code null} if only chars &lt;= 32, empty or null String input
508
     * @since 2.0
509
     */
510
    public static String trimToNull(final String str) {
511
        final String ts = trim(str);
512 2 1. trimToNull : negated conditional → KILLED
2. trimToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isEmpty(ts) ? null : ts;
513
    }
514
515
    /**
516
     * <p>Removes control characters (char &lt;= 32) from both
517
     * ends of this String returning an empty String ("") if the String
518
     * is empty ("") after the trim or if it is {@code null}.
519
     *
520
     * <p>The String is trimmed using {@link String#trim()}.
521
     * Trim removes start and end characters &lt;= 32.
522
     * To strip whitespace use {@link #stripToEmpty(String)}.</p>
523
     *
524
     * <pre>
525
     * StringUtils.trimToEmpty(null)          = ""
526
     * StringUtils.trimToEmpty("")            = ""
527
     * StringUtils.trimToEmpty("     ")       = ""
528
     * StringUtils.trimToEmpty("abc")         = "abc"
529
     * StringUtils.trimToEmpty("    abc    ") = "abc"
530
     * </pre>
531
     *
532
     * @param str  the String to be trimmed, may be null
533
     * @return the trimmed String, or an empty String if {@code null} input
534
     * @since 2.0
535
     */
536
    public static String trimToEmpty(final String str) {
537 2 1. trimToEmpty : negated conditional → KILLED
2. trimToEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : str.trim();
538
    }
539
540
    /**
541
     * <p>Truncates a String. This will turn
542
     * "Now is the time for all good men" into "Now is the time for".</p>
543
     *
544
     * <p>Specifically:</p>
545
     * <ul>
546
     *   <li>If {@code str} is less than {@code maxWidth} characters
547
     *       long, return it.</li>
548
     *   <li>Else truncate it to {@code substring(str, 0, maxWidth)}.</li>
549
     *   <li>If {@code maxWidth} is less than {@code 0}, throw an
550
     *       {@code IllegalArgumentException}.</li>
551
     *   <li>In no case will it return a String of length greater than
552
     *       {@code maxWidth}.</li>
553
     * </ul>
554
     *
555
     * <pre>
556
     * StringUtils.truncate(null, 0)       = null
557
     * StringUtils.truncate(null, 2)       = null
558
     * StringUtils.truncate("", 4)         = ""
559
     * StringUtils.truncate("abcdefg", 4)  = "abcd"
560
     * StringUtils.truncate("abcdefg", 6)  = "abcdef"
561
     * StringUtils.truncate("abcdefg", 7)  = "abcdefg"
562
     * StringUtils.truncate("abcdefg", 8)  = "abcdefg"
563
     * StringUtils.truncate("abcdefg", -1) = throws an IllegalArgumentException
564
     * </pre>
565
     *
566
     * @param str  the String to truncate, may be null
567
     * @param maxWidth  maximum length of result String, must be positive
568
     * @return truncated String, {@code null} if null String input
569
     * @since 3.5
570
     */
571
    public static String truncate(final String str, final int maxWidth) {
572 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return truncate(str, 0, maxWidth);
573
    }
574
575
    /**
576
     * <p>Truncates a String. This will turn
577
     * "Now is the time for all good men" into "is the time for all".</p>
578
     *
579
     * <p>Works like {@code truncate(String, int)}, but allows you to specify
580
     * a "left edge" offset.
581
     *
582
     * <p>Specifically:</p>
583
     * <ul>
584
     *   <li>If {@code str} is less than {@code maxWidth} characters
585
     *       long, return it.</li>
586
     *   <li>Else truncate it to {@code substring(str, offset, maxWidth)}.</li>
587
     *   <li>If {@code maxWidth} is less than {@code 0}, throw an
588
     *       {@code IllegalArgumentException}.</li>
589
     *   <li>If {@code offset} is less than {@code 0}, throw an
590
     *       {@code IllegalArgumentException}.</li>
591
     *   <li>In no case will it return a String of length greater than
592
     *       {@code maxWidth}.</li>
593
     * </ul>
594
     *
595
     * <pre>
596
     * StringUtils.truncate(null, 0, 0) = null
597
     * StringUtils.truncate(null, 2, 4) = null
598
     * StringUtils.truncate("", 0, 10) = ""
599
     * StringUtils.truncate("", 2, 10) = ""
600
     * StringUtils.truncate("abcdefghij", 0, 3) = "abc"
601
     * StringUtils.truncate("abcdefghij", 5, 6) = "fghij"
602
     * StringUtils.truncate("raspberry peach", 10, 15) = "peach"
603
     * StringUtils.truncate("abcdefghijklmno", 0, 10) = "abcdefghij"
604
     * StringUtils.truncate("abcdefghijklmno", -1, 10) = throws an IllegalArgumentException
605
     * StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, 10) = "abcdefghij"
606
     * StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, Integer.MAX_VALUE) = "abcdefghijklmno"
607
     * StringUtils.truncate("abcdefghijklmno", 0, Integer.MAX_VALUE) = "abcdefghijklmno"
608
     * StringUtils.truncate("abcdefghijklmno", 1, 10) = "bcdefghijk"
609
     * StringUtils.truncate("abcdefghijklmno", 2, 10) = "cdefghijkl"
610
     * StringUtils.truncate("abcdefghijklmno", 3, 10) = "defghijklm"
611
     * StringUtils.truncate("abcdefghijklmno", 4, 10) = "efghijklmn"
612
     * StringUtils.truncate("abcdefghijklmno", 5, 10) = "fghijklmno"
613
     * StringUtils.truncate("abcdefghijklmno", 5, 5) = "fghij"
614
     * StringUtils.truncate("abcdefghijklmno", 5, 3) = "fgh"
615
     * StringUtils.truncate("abcdefghijklmno", 10, 3) = "klm"
616
     * StringUtils.truncate("abcdefghijklmno", 10, Integer.MAX_VALUE) = "klmno"
617
     * StringUtils.truncate("abcdefghijklmno", 13, 1) = "n"
618
     * StringUtils.truncate("abcdefghijklmno", 13, Integer.MAX_VALUE) = "no"
619
     * StringUtils.truncate("abcdefghijklmno", 14, 1) = "o"
620
     * StringUtils.truncate("abcdefghijklmno", 14, Integer.MAX_VALUE) = "o"
621
     * StringUtils.truncate("abcdefghijklmno", 15, 1) = ""
622
     * StringUtils.truncate("abcdefghijklmno", 15, Integer.MAX_VALUE) = ""
623
     * StringUtils.truncate("abcdefghijklmno", Integer.MAX_VALUE, Integer.MAX_VALUE) = ""
624
     * StringUtils.truncate("abcdefghij", 3, -1) = throws an IllegalArgumentException
625
     * StringUtils.truncate("abcdefghij", -2, 4) = throws an IllegalArgumentException
626
     * </pre>
627
     *
628
     * @param str  the String to check, may be null
629
     * @param offset  left edge of source String
630
     * @param maxWidth  maximum length of result String, must be positive
631
     * @return truncated String, {@code null} if null String input
632
     * @since 3.5
633
     */
634
    public static String truncate(final String str, final int offset, final int maxWidth) {
635 2 1. truncate : changed conditional boundary → KILLED
2. truncate : negated conditional → KILLED
        if (offset < 0) {
636
            throw new IllegalArgumentException("offset cannot be negative");
637
        }
638 2 1. truncate : changed conditional boundary → KILLED
2. truncate : negated conditional → KILLED
        if (maxWidth < 0) {
639
            throw new IllegalArgumentException("maxWith cannot be negative");
640
        }
641 1 1. truncate : negated conditional → KILLED
        if (str == null) {
642 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
643
        }
644 2 1. truncate : changed conditional boundary → SURVIVED
2. truncate : negated conditional → KILLED
        if (offset > str.length()) {
645 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
646
        }
647 2 1. truncate : changed conditional boundary → SURVIVED
2. truncate : negated conditional → KILLED
        if (str.length() > maxWidth) {
648 4 1. truncate : changed conditional boundary → SURVIVED
2. truncate : Replaced integer addition with subtraction → KILLED
3. truncate : Replaced integer addition with subtraction → KILLED
4. truncate : negated conditional → KILLED
            final int ix = offset + maxWidth > str.length() ? str.length() : offset + maxWidth;
649 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(offset, ix);
650
        }
651 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(offset);
652
    }
653
654
    // Stripping
655
    //-----------------------------------------------------------------------
656
    /**
657
     * <p>Strips whitespace from the start and end of a String.</p>
658
     *
659
     * <p>This is similar to {@link #trim(String)} but removes whitespace.
660
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
661
     *
662
     * <p>A {@code null} input String returns {@code null}.</p>
663
     *
664
     * <pre>
665
     * StringUtils.strip(null)     = null
666
     * StringUtils.strip("")       = ""
667
     * StringUtils.strip("   ")    = ""
668
     * StringUtils.strip("abc")    = "abc"
669
     * StringUtils.strip("  abc")  = "abc"
670
     * StringUtils.strip("abc  ")  = "abc"
671
     * StringUtils.strip(" abc ")  = "abc"
672
     * StringUtils.strip(" ab c ") = "ab c"
673
     * </pre>
674
     *
675
     * @param str  the String to remove whitespace from, may be null
676
     * @return the stripped String, {@code null} if null String input
677
     */
678
    public static String strip(final String str) {
679 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return strip(str, null);
680
    }
681
682
    /**
683
     * <p>Strips whitespace from the start and end of a String  returning
684
     * {@code null} if the String is empty ("") after the strip.</p>
685
     *
686
     * <p>This is similar to {@link #trimToNull(String)} but removes whitespace.
687
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
688
     *
689
     * <pre>
690
     * StringUtils.stripToNull(null)     = null
691
     * StringUtils.stripToNull("")       = null
692
     * StringUtils.stripToNull("   ")    = null
693
     * StringUtils.stripToNull("abc")    = "abc"
694
     * StringUtils.stripToNull("  abc")  = "abc"
695
     * StringUtils.stripToNull("abc  ")  = "abc"
696
     * StringUtils.stripToNull(" abc ")  = "abc"
697
     * StringUtils.stripToNull(" ab c ") = "ab c"
698
     * </pre>
699
     *
700
     * @param str  the String to be stripped, may be null
701
     * @return the stripped String,
702
     *  {@code null} if whitespace, empty or null String input
703
     * @since 2.0
704
     */
705
    public static String stripToNull(String str) {
706 1 1. stripToNull : negated conditional → KILLED
        if (str == null) {
707 1 1. stripToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
708
        }
709
        str = strip(str, null);
710 2 1. stripToNull : negated conditional → KILLED
2. stripToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.isEmpty() ? null : str;
711
    }
712
713
    /**
714
     * <p>Strips whitespace from the start and end of a String  returning
715
     * an empty String if {@code null} input.</p>
716
     *
717
     * <p>This is similar to {@link #trimToEmpty(String)} but removes whitespace.
718
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
719
     *
720
     * <pre>
721
     * StringUtils.stripToEmpty(null)     = ""
722
     * StringUtils.stripToEmpty("")       = ""
723
     * StringUtils.stripToEmpty("   ")    = ""
724
     * StringUtils.stripToEmpty("abc")    = "abc"
725
     * StringUtils.stripToEmpty("  abc")  = "abc"
726
     * StringUtils.stripToEmpty("abc  ")  = "abc"
727
     * StringUtils.stripToEmpty(" abc ")  = "abc"
728
     * StringUtils.stripToEmpty(" ab c ") = "ab c"
729
     * </pre>
730
     *
731
     * @param str  the String to be stripped, may be null
732
     * @return the trimmed String, or an empty String if {@code null} input
733
     * @since 2.0
734
     */
735
    public static String stripToEmpty(final String str) {
736 2 1. stripToEmpty : negated conditional → KILLED
2. stripToEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : strip(str, null);
737
    }
738
739
    /**
740
     * <p>Strips any of a set of characters from the start and end of a String.
741
     * This is similar to {@link String#trim()} but allows the characters
742
     * to be stripped to be controlled.</p>
743
     *
744
     * <p>A {@code null} input String returns {@code null}.
745
     * An empty string ("") input returns the empty string.</p>
746
     *
747
     * <p>If the stripChars String is {@code null}, whitespace is
748
     * stripped as defined by {@link Character#isWhitespace(char)}.
749
     * Alternatively use {@link #strip(String)}.</p>
750
     *
751
     * <pre>
752
     * StringUtils.strip(null, *)          = null
753
     * StringUtils.strip("", *)            = ""
754
     * StringUtils.strip("abc", null)      = "abc"
755
     * StringUtils.strip("  abc", null)    = "abc"
756
     * StringUtils.strip("abc  ", null)    = "abc"
757
     * StringUtils.strip(" abc ", null)    = "abc"
758
     * StringUtils.strip("  abcyx", "xyz") = "  abc"
759
     * </pre>
760
     *
761
     * @param str  the String to remove characters from, may be null
762
     * @param stripChars  the characters to remove, null treated as whitespace
763
     * @return the stripped String, {@code null} if null String input
764
     */
765
    public static String strip(String str, final String stripChars) {
766 1 1. strip : negated conditional → KILLED
        if (isEmpty(str)) {
767 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
768
        }
769
        str = stripStart(str, stripChars);
770 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return stripEnd(str, stripChars);
771
    }
772
    
773
    /**
774
     * <p>Strips any of a set of characters from the start of a String.</p>
775
     *
776
     * <p>A {@code null} input String returns {@code null}.
777
     * An empty string ("") input returns the empty string.</p>
778
     *
779
     * <p>If the stripChars String is {@code null}, whitespace is
780
     * stripped as defined by {@link Character#isWhitespace(char)}.</p>
781
     *
782
     * <pre>
783
     * StringUtils.stripStart(null, *)          = null
784
     * StringUtils.stripStart("", *)            = ""
785
     * StringUtils.stripStart("abc", "")        = "abc"
786
     * StringUtils.stripStart("abc", null)      = "abc"
787
     * StringUtils.stripStart("  abc", null)    = "abc"
788
     * StringUtils.stripStart("abc  ", null)    = "abc  "
789
     * StringUtils.stripStart(" abc ", null)    = "abc "
790
     * StringUtils.stripStart("yxabc  ", "xyz") = "abc  "
791
     * </pre>
792
     *
793
     * @param str  the String to remove characters from, may be null
794
     * @param stripChars  the characters to remove, null treated as whitespace
795
     * @return the stripped String, {@code null} if null String input
796
     */
797
    public static String stripStart(final String str, final String stripChars) {
798
        int strLen;
799 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
800 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
801
        }
802
        int start = 0;
803 1 1. stripStart : negated conditional → KILLED
        if (stripChars == null) {
804 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
            while (start != strLen && Character.isWhitespace(str.charAt(start))) {
805 1 1. stripStart : Changed increment from 1 to -1 → KILLED
                start++;
806
            }
807 1 1. stripStart : negated conditional → KILLED
        } else if (stripChars.isEmpty()) {
808 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
809
        } else {
810 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
            while (start != strLen && stripChars.indexOf(str.charAt(start)) != INDEX_NOT_FOUND) {
811 1 1. stripStart : Changed increment from 1 to -1 → KILLED
                start++;
812
            }
813
        }
814 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start);
815
    }
816
817
    /**
818
     * <p>Strips any of a set of characters from the end of a String.</p>
819
     *
820
     * <p>A {@code null} input String returns {@code null}.
821
     * An empty string ("") input returns the empty string.</p>
822
     *
823
     * <p>If the stripChars String is {@code null}, whitespace is
824
     * stripped as defined by {@link Character#isWhitespace(char)}.</p>
825
     *
826
     * <pre>
827
     * StringUtils.stripEnd(null, *)          = null
828
     * StringUtils.stripEnd("", *)            = ""
829
     * StringUtils.stripEnd("abc", "")        = "abc"
830
     * StringUtils.stripEnd("abc", null)      = "abc"
831
     * StringUtils.stripEnd("  abc", null)    = "  abc"
832
     * StringUtils.stripEnd("abc  ", null)    = "abc"
833
     * StringUtils.stripEnd(" abc ", null)    = " abc"
834
     * StringUtils.stripEnd("  abcyx", "xyz") = "  abc"
835
     * StringUtils.stripEnd("120.00", ".0")   = "12"
836
     * </pre>
837
     *
838
     * @param str  the String to remove characters from, may be null
839
     * @param stripChars  the set of characters to remove, null treated as whitespace
840
     * @return the stripped String, {@code null} if null String input
841
     */
842
    public static String stripEnd(final String str, final String stripChars) {
843
        int end;
844 2 1. stripEnd : negated conditional → KILLED
2. stripEnd : negated conditional → KILLED
        if (str == null || (end = str.length()) == 0) {
845 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
846
        }
847
848 1 1. stripEnd : negated conditional → KILLED
        if (stripChars == null) {
849 3 1. stripEnd : Replaced integer subtraction with addition → KILLED
2. stripEnd : negated conditional → KILLED
3. stripEnd : negated conditional → KILLED
            while (end != 0 && Character.isWhitespace(str.charAt(end - 1))) {
850 1 1. stripEnd : Changed increment from -1 to 1 → KILLED
                end--;
851
            }
852 1 1. stripEnd : negated conditional → KILLED
        } else if (stripChars.isEmpty()) {
853 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
854
        } else {
855 3 1. stripEnd : Replaced integer subtraction with addition → KILLED
2. stripEnd : negated conditional → KILLED
3. stripEnd : negated conditional → KILLED
            while (end != 0 && stripChars.indexOf(str.charAt(end - 1)) != INDEX_NOT_FOUND) {
856 1 1. stripEnd : Changed increment from -1 to 1 → KILLED
                end--;
857
            }
858
        }
859 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, end);
860
    }
861
862
    // StripAll
863
    //-----------------------------------------------------------------------
864
    /**
865
     * <p>Strips whitespace from the start and end of every String in an array.
866
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
867
     *
868
     * <p>A new array is returned each time, except for length zero.
869
     * A {@code null} array will return {@code null}.
870
     * An empty array will return itself.
871
     * A {@code null} array entry will be ignored.</p>
872
     *
873
     * <pre>
874
     * StringUtils.stripAll(null)             = null
875
     * StringUtils.stripAll([])               = []
876
     * StringUtils.stripAll(["abc", "  abc"]) = ["abc", "abc"]
877
     * StringUtils.stripAll(["abc  ", null])  = ["abc", null]
878
     * </pre>
879
     *
880
     * @param strs  the array to remove whitespace from, may be null
881
     * @return the stripped Strings, {@code null} if null array input
882
     */
883
    public static String[] stripAll(final String... strs) {
884 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return stripAll(strs, null);
885
    }
886
887
    /**
888
     * <p>Strips any of a set of characters from the start and end of every
889
     * String in an array.</p>
890
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
891
     *
892
     * <p>A new array is returned each time, except for length zero.
893
     * A {@code null} array will return {@code null}.
894
     * An empty array will return itself.
895
     * A {@code null} array entry will be ignored.
896
     * A {@code null} stripChars will strip whitespace as defined by
897
     * {@link Character#isWhitespace(char)}.</p>
898
     *
899
     * <pre>
900
     * StringUtils.stripAll(null, *)                = null
901
     * StringUtils.stripAll([], *)                  = []
902
     * StringUtils.stripAll(["abc", "  abc"], null) = ["abc", "abc"]
903
     * StringUtils.stripAll(["abc  ", null], null)  = ["abc", null]
904
     * StringUtils.stripAll(["abc  ", null], "yz")  = ["abc  ", null]
905
     * StringUtils.stripAll(["yabcz", null], "yz")  = ["abc", null]
906
     * </pre>
907
     *
908
     * @param strs  the array to remove characters from, may be null
909
     * @param stripChars  the characters to remove, null treated as whitespace
910
     * @return the stripped Strings, {@code null} if null array input
911
     */
912
    public static String[] stripAll(final String[] strs, final String stripChars) {
913
        int strsLen;
914 2 1. stripAll : negated conditional → KILLED
2. stripAll : negated conditional → KILLED
        if (strs == null || (strsLen = strs.length) == 0) {
915 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs;
916
        }
917
        final String[] newArr = new String[strsLen];
918 3 1. stripAll : changed conditional boundary → KILLED
2. stripAll : Changed increment from 1 to -1 → KILLED
3. stripAll : negated conditional → KILLED
        for (int i = 0; i < strsLen; i++) {
919
            newArr[i] = strip(strs[i], stripChars);
920
        }
921 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return newArr;
922
    }
923
924
    /**
925
     * <p>Removes diacritics (~= accents) from a string. The case will not be altered.</p>
926
     * <p>For instance, '&agrave;' will be replaced by 'a'.</p>
927
     * <p>Note that ligatures will be left as is.</p>
928
     *
929
     * <pre>
930
     * StringUtils.stripAccents(null)                = null
931
     * StringUtils.stripAccents("")                  = ""
932
     * StringUtils.stripAccents("control")           = "control"
933
     * StringUtils.stripAccents("&eacute;clair")     = "eclair"
934
     * </pre>
935
     *
936
     * @param input String to be stripped
937
     * @return input text with diacritics removed
938
     *
939
     * @since 3.0
940
     */
941
    // See also Lucene's ASCIIFoldingFilter (Lucene 2.9) that replaces accented characters by their unaccented equivalent (and uncommitted bug fix: https://issues.apache.org/jira/browse/LUCENE-1343?focusedCommentId=12858907&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12858907).
942
    public static String stripAccents(final String input) {
943 1 1. stripAccents : negated conditional → KILLED
        if(input == null) {
944 1 1. stripAccents : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
945
        }
946
        final Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");//$NON-NLS-1$
947
        final StringBuilder decomposed = new StringBuilder(Normalizer.normalize(input, Normalizer.Form.NFD));
948 1 1. stripAccents : removed call to org/apache/commons/lang3/StringUtils::convertRemainingAccentCharacters → KILLED
        convertRemainingAccentCharacters(decomposed);
949
        // Note that this doesn't correctly remove ligatures...
950 1 1. stripAccents : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return pattern.matcher(decomposed).replaceAll(StringUtils.EMPTY);
951
    }
952
953
    private static void convertRemainingAccentCharacters(final StringBuilder decomposed) {
954 3 1. convertRemainingAccentCharacters : changed conditional boundary → KILLED
2. convertRemainingAccentCharacters : Changed increment from 1 to -1 → KILLED
3. convertRemainingAccentCharacters : negated conditional → KILLED
        for (int i = 0; i < decomposed.length(); i++) {
955 1 1. convertRemainingAccentCharacters : negated conditional → KILLED
            if (decomposed.charAt(i) == '\u0141') {
956
                decomposed.deleteCharAt(i);
957
                decomposed.insert(i, 'L');
958 1 1. convertRemainingAccentCharacters : negated conditional → KILLED
            } else if (decomposed.charAt(i) == '\u0142') {
959
                decomposed.deleteCharAt(i);
960
                decomposed.insert(i, 'l');
961
            }
962
        }
963
    }
964
965
    // Equals
966
    //-----------------------------------------------------------------------
967
    /**
968
     * <p>Compares two CharSequences, returning {@code true} if they represent
969
     * equal sequences of characters.</p>
970
     *
971
     * <p>{@code null}s are handled without exceptions. Two {@code null}
972
     * references are considered to be equal. The comparison is case sensitive.</p>
973
     *
974
     * <pre>
975
     * StringUtils.equals(null, null)   = true
976
     * StringUtils.equals(null, "abc")  = false
977
     * StringUtils.equals("abc", null)  = false
978
     * StringUtils.equals("abc", "abc") = true
979
     * StringUtils.equals("abc", "ABC") = false
980
     * </pre>
981
     *
982
     * @see Object#equals(Object)
983
     * @param cs1  the first CharSequence, may be {@code null}
984
     * @param cs2  the second CharSequence, may be {@code null}
985
     * @return {@code true} if the CharSequences are equal (case-sensitive), or both {@code null}
986
     * @since 3.0 Changed signature from equals(String, String) to equals(CharSequence, CharSequence)
987
     */
988
    public static boolean equals(final CharSequence cs1, final CharSequence cs2) {
989 1 1. equals : negated conditional → KILLED
        if (cs1 == cs2) {
990 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
991
        }
992 2 1. equals : negated conditional → KILLED
2. equals : negated conditional → KILLED
        if (cs1 == null || cs2 == null) {
993 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
994
        }
995 1 1. equals : negated conditional → KILLED
        if (cs1.length() != cs2.length()) {
996 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
997
        }
998 2 1. equals : negated conditional → KILLED
2. equals : negated conditional → KILLED
        if (cs1 instanceof String && cs2 instanceof String) {
999 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return cs1.equals(cs2);
1000
        }
1001 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, cs1.length());
1002
    }
1003
1004
    /**
1005
     * <p>Compares two CharSequences, returning {@code true} if they represent
1006
     * equal sequences of characters, ignoring case.</p>
1007
     *
1008
     * <p>{@code null}s are handled without exceptions. Two {@code null}
1009
     * references are considered equal. Comparison is case insensitive.</p>
1010
     *
1011
     * <pre>
1012
     * StringUtils.equalsIgnoreCase(null, null)   = true
1013
     * StringUtils.equalsIgnoreCase(null, "abc")  = false
1014
     * StringUtils.equalsIgnoreCase("abc", null)  = false
1015
     * StringUtils.equalsIgnoreCase("abc", "abc") = true
1016
     * StringUtils.equalsIgnoreCase("abc", "ABC") = true
1017
     * </pre>
1018
     *
1019
     * @param str1  the first CharSequence, may be null
1020
     * @param str2  the second CharSequence, may be null
1021
     * @return {@code true} if the CharSequence are equal, case insensitive, or
1022
     *  both {@code null}
1023
     * @since 3.0 Changed signature from equalsIgnoreCase(String, String) to equalsIgnoreCase(CharSequence, CharSequence)
1024
     */
1025
    public static boolean equalsIgnoreCase(final CharSequence str1, final CharSequence str2) {
1026 2 1. equalsIgnoreCase : negated conditional → KILLED
2. equalsIgnoreCase : negated conditional → KILLED
        if (str1 == null || str2 == null) {
1027 2 1. equalsIgnoreCase : negated conditional → KILLED
2. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str1 == str2;
1028 1 1. equalsIgnoreCase : negated conditional → KILLED
        } else if (str1 == str2) {
1029 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
1030 1 1. equalsIgnoreCase : negated conditional → KILLED
        } else if (str1.length() != str2.length()) {
1031 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1032
        } else {
1033 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return CharSequenceUtils.regionMatches(str1, true, 0, str2, 0, str1.length());
1034
        }
1035
    }
1036
1037
    // Compare
1038
    //-----------------------------------------------------------------------
1039
    /**
1040
     * <p>Compare two Strings lexicographically, as per {@link String#compareTo(String)}, returning :</p>
1041
     * <ul>
1042
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1043
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1044
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1045
     * </ul>
1046
     *
1047
     * <p>This is a {@code null} safe version of :</p>
1048
     * <blockquote><pre>str1.compareTo(str2)</pre></blockquote>
1049
     *
1050
     * <p>{@code null} value is considered less than non-{@code null} value.
1051
     * Two {@code null} references are considered equal.</p>
1052
     *
1053
     * <pre>
1054
     * StringUtils.compare(null, null)   = 0
1055
     * StringUtils.compare(null , "a")   &lt; 0
1056
     * StringUtils.compare("a", null)    &gt; 0
1057
     * StringUtils.compare("abc", "abc") = 0
1058
     * StringUtils.compare("a", "b")     &lt; 0
1059
     * StringUtils.compare("b", "a")     &gt; 0
1060
     * StringUtils.compare("a", "B")     &gt; 0
1061
     * StringUtils.compare("ab", "abc")  &lt; 0
1062
     * </pre>
1063
     *
1064
     * @see #compare(String, String, boolean)
1065
     * @see String#compareTo(String)
1066
     * @param str1  the String to compare from
1067
     * @param str2  the String to compare to
1068
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2}
1069
     * @since 3.5
1070
     */
1071
    public static int compare(final String str1, final String str2) {
1072 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return compare(str1, str2, true);
1073
    }
1074
1075
    /**
1076
     * <p>Compare two Strings lexicographically, as per {@link String#compareTo(String)}, returning :</p>
1077
     * <ul>
1078
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1079
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1080
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1081
     * </ul>
1082
     *
1083
     * <p>This is a {@code null} safe version of :</p>
1084
     * <blockquote><pre>str1.compareTo(str2)</pre></blockquote>
1085
     *
1086
     * <p>{@code null} inputs are handled according to the {@code nullIsLess} parameter.
1087
     * Two {@code null} references are considered equal.</p>
1088
     *
1089
     * <pre>
1090
     * StringUtils.compare(null, null, *)     = 0
1091
     * StringUtils.compare(null , "a", true)  &lt; 0
1092
     * StringUtils.compare(null , "a", false) &gt; 0
1093
     * StringUtils.compare("a", null, true)   &gt; 0
1094
     * StringUtils.compare("a", null, false)  &lt; 0
1095
     * StringUtils.compare("abc", "abc", *)   = 0
1096
     * StringUtils.compare("a", "b", *)       &lt; 0
1097
     * StringUtils.compare("b", "a", *)       &gt; 0
1098
     * StringUtils.compare("a", "B", *)       &gt; 0
1099
     * StringUtils.compare("ab", "abc", *)    &lt; 0
1100
     * </pre>
1101
     *
1102
     * @see String#compareTo(String)
1103
     * @param str1  the String to compare from
1104
     * @param str2  the String to compare to
1105
     * @param nullIsLess  whether consider {@code null} value less than non-{@code null} value
1106
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2}
1107
     * @since 3.5
1108
     */
1109
    public static int compare(final String str1, final String str2, final boolean nullIsLess) {
1110 1 1. compare : negated conditional → KILLED
        if (str1 == str2) {
1111 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
1112
        }
1113 1 1. compare : negated conditional → KILLED
        if (str1 == null) {
1114 2 1. compare : negated conditional → KILLED
2. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? -1 : 1;
1115
        }
1116 1 1. compare : negated conditional → KILLED
        if (str2 == null) {
1117 2 1. compare : negated conditional → KILLED
2. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? 1 : - 1;
1118
        }
1119 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return str1.compareTo(str2);
1120
    }
1121
1122
    /**
1123
     * <p>Compare two Strings lexicographically, ignoring case differences,
1124
     * as per {@link String#compareToIgnoreCase(String)}, returning :</p>
1125
     * <ul>
1126
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1127
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1128
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1129
     * </ul>
1130
     *
1131
     * <p>This is a {@code null} safe version of :</p>
1132
     * <blockquote><pre>str1.compareToIgnoreCase(str2)</pre></blockquote>
1133
     *
1134
     * <p>{@code null} value is considered less than non-{@code null} value.
1135
     * Two {@code null} references are considered equal.
1136
     * Comparison is case insensitive.</p>
1137
     *
1138
     * <pre>
1139
     * StringUtils.compareIgnoreCase(null, null)   = 0
1140
     * StringUtils.compareIgnoreCase(null , "a")   &lt; 0
1141
     * StringUtils.compareIgnoreCase("a", null)    &gt; 0
1142
     * StringUtils.compareIgnoreCase("abc", "abc") = 0
1143
     * StringUtils.compareIgnoreCase("abc", "ABC") = 0
1144
     * StringUtils.compareIgnoreCase("a", "b")     &lt; 0
1145
     * StringUtils.compareIgnoreCase("b", "a")     &gt; 0
1146
     * StringUtils.compareIgnoreCase("a", "B")     &lt; 0
1147
     * StringUtils.compareIgnoreCase("A", "b")     &lt; 0
1148
     * StringUtils.compareIgnoreCase("ab", "ABC")  &lt; 0
1149
     * </pre>
1150
     *
1151
     * @see #compareIgnoreCase(String, String, boolean)
1152
     * @see String#compareToIgnoreCase(String)
1153
     * @param str1  the String to compare from
1154
     * @param str2  the String to compare to
1155
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2},
1156
     *          ignoring case differences.
1157
     * @since 3.5
1158
     */
1159
    public static int compareIgnoreCase(final String str1, final String str2) {
1160 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return compareIgnoreCase(str1, str2, true);
1161
    }
1162
1163
    /**
1164
     * <p>Compare two Strings lexicographically, ignoring case differences,
1165
     * as per {@link String#compareToIgnoreCase(String)}, returning :</p>
1166
     * <ul>
1167
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1168
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1169
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1170
     * </ul>
1171
     *
1172
     * <p>This is a {@code null} safe version of :</p>
1173
     * <blockquote><pre>str1.compareToIgnoreCase(str2)</pre></blockquote>
1174
     *
1175
     * <p>{@code null} inputs are handled according to the {@code nullIsLess} parameter.
1176
     * Two {@code null} references are considered equal.
1177
     * Comparison is case insensitive.</p>
1178
     *
1179
     * <pre>
1180
     * StringUtils.compareIgnoreCase(null, null, *)     = 0
1181
     * StringUtils.compareIgnoreCase(null , "a", true)  &lt; 0
1182
     * StringUtils.compareIgnoreCase(null , "a", false) &gt; 0
1183
     * StringUtils.compareIgnoreCase("a", null, true)   &gt; 0
1184
     * StringUtils.compareIgnoreCase("a", null, false)  &lt; 0
1185
     * StringUtils.compareIgnoreCase("abc", "abc", *)   = 0
1186
     * StringUtils.compareIgnoreCase("abc", "ABC", *)   = 0
1187
     * StringUtils.compareIgnoreCase("a", "b", *)       &lt; 0
1188
     * StringUtils.compareIgnoreCase("b", "a", *)       &gt; 0
1189
     * StringUtils.compareIgnoreCase("a", "B", *)       &lt; 0
1190
     * StringUtils.compareIgnoreCase("A", "b", *)       &lt; 0
1191
     * StringUtils.compareIgnoreCase("ab", "abc", *)    &lt; 0
1192
     * </pre>
1193
     *
1194
     * @see String#compareToIgnoreCase(String)
1195
     * @param str1  the String to compare from
1196
     * @param str2  the String to compare to
1197
     * @param nullIsLess  whether consider {@code null} value less than non-{@code null} value
1198
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2},
1199
     *          ignoring case differences.
1200
     * @since 3.5
1201
     */
1202
    public static int compareIgnoreCase(final String str1, final String str2, final boolean nullIsLess) {
1203 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str1 == str2) {
1204 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
1205
        }
1206 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str1 == null) {
1207 2 1. compareIgnoreCase : negated conditional → KILLED
2. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? -1 : 1;
1208
        }
1209 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str2 == null) {
1210 2 1. compareIgnoreCase : negated conditional → KILLED
2. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? 1 : - 1;
1211
        }
1212 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return str1.compareToIgnoreCase(str2);
1213
    }
1214
1215
    /**
1216
     * <p>Compares given <code>string</code> to a CharSequences vararg of <code>searchStrings</code>,
1217
     * returning {@code true} if the <code>string</code> is equal to any of the <code>searchStrings</code>.</p>
1218
     *
1219
     * <pre>
1220
     * StringUtils.equalsAny(null, (CharSequence[]) null) = false
1221
     * StringUtils.equalsAny(null, null, null)    = true
1222
     * StringUtils.equalsAny(null, "abc", "def")  = false
1223
     * StringUtils.equalsAny("abc", null, "def")  = false
1224
     * StringUtils.equalsAny("abc", "abc", "def") = true
1225
     * StringUtils.equalsAny("abc", "ABC", "DEF") = false
1226
     * </pre>
1227
     *
1228
     * @param string to compare, may be {@code null}.
1229
     * @param searchStrings a vararg of strings, may be {@code null}.
1230
     * @return {@code true} if the string is equal (case-sensitive) to any other element of <code>searchStrings</code>;
1231
     * {@code false} if <code>searchStrings</code> is null or contains no matches.
1232
     * @since 3.5
1233
     */
1234
    public static boolean equalsAny(final CharSequence string, final CharSequence... searchStrings) {
1235 1 1. equalsAny : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(searchStrings)) {
1236 3 1. equalsAny : changed conditional boundary → KILLED
2. equalsAny : Changed increment from 1 to -1 → KILLED
3. equalsAny : negated conditional → KILLED
            for (final CharSequence next : searchStrings) {
1237 1 1. equalsAny : negated conditional → KILLED
                if (equals(string, next)) {
1238 1 1. equalsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return true;
1239
                }
1240
            }
1241
        }
1242 1 1. equalsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1243
    }
1244
1245
1246
    /**
1247
     * <p>Compares given <code>string</code> to a CharSequences vararg of <code>searchStrings</code>,
1248
     * returning {@code true} if the <code>string</code> is equal to any of the <code>searchStrings</code>, ignoring case.</p>
1249
     *
1250
     * <pre>
1251
     * StringUtils.equalsAnyIgnoreCase(null, (CharSequence[]) null) = false
1252
     * StringUtils.equalsAnyIgnoreCase(null, null, null)    = true
1253
     * StringUtils.equalsAnyIgnoreCase(null, "abc", "def")  = false
1254
     * StringUtils.equalsAnyIgnoreCase("abc", null, "def")  = false
1255
     * StringUtils.equalsAnyIgnoreCase("abc", "abc", "def") = true
1256
     * StringUtils.equalsAnyIgnoreCase("abc", "ABC", "DEF") = true
1257
     * </pre>
1258
     *
1259
     * @param string to compare, may be {@code null}.
1260
     * @param searchStrings a vararg of strings, may be {@code null}.
1261
     * @return {@code true} if the string is equal (case-insensitive) to any other element of <code>searchStrings</code>;
1262
     * {@code false} if <code>searchStrings</code> is null or contains no matches.
1263
     * @since 3.5
1264
     */
1265
    public static boolean equalsAnyIgnoreCase(final CharSequence string, final CharSequence...searchStrings) {
1266 1 1. equalsAnyIgnoreCase : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(searchStrings)) {
1267 3 1. equalsAnyIgnoreCase : changed conditional boundary → KILLED
2. equalsAnyIgnoreCase : Changed increment from 1 to -1 → KILLED
3. equalsAnyIgnoreCase : negated conditional → KILLED
            for (final CharSequence next : searchStrings) {
1268 1 1. equalsAnyIgnoreCase : negated conditional → KILLED
                if (equalsIgnoreCase(string, next)) {
1269 1 1. equalsAnyIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return true;
1270
                }
1271
            }
1272
        }
1273 1 1. equalsAnyIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1274
    }
1275
1276
    // IndexOf
1277
    //-----------------------------------------------------------------------
1278
    /**
1279
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1280
     * This method uses {@link String#indexOf(int, int)} if possible.</p>
1281
     *
1282
     * <p>A {@code null} or empty ("") CharSequence will return {@code INDEX_NOT_FOUND (-1)}.</p>
1283
     *
1284
     * <pre>
1285
     * StringUtils.indexOf(null, *)         = -1
1286
     * StringUtils.indexOf("", *)           = -1
1287
     * StringUtils.indexOf("aabaabaa", 'a') = 0
1288
     * StringUtils.indexOf("aabaabaa", 'b') = 2
1289
     * </pre>
1290
     *
1291
     * @param seq  the CharSequence to check, may be null
1292
     * @param searchChar  the character to find
1293
     * @return the first index of the search character,
1294
     *  -1 if no match or {@code null} string input
1295
     * @since 2.0
1296
     * @since 3.0 Changed signature from indexOf(String, int) to indexOf(CharSequence, int)
1297
     */
1298
    public static int indexOf(final CharSequence seq, final int searchChar) {
1299 1 1. indexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1300 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1301
        }
1302 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, 0);
1303
    }
1304
1305
    /**
1306
     * <p>Finds the first index within a CharSequence from a start position,
1307
     * handling {@code null}.
1308
     * This method uses {@link String#indexOf(int, int)} if possible.</p>
1309
     *
1310
     * <p>A {@code null} or empty ("") CharSequence will return {@code (INDEX_NOT_FOUND) -1}.
1311
     * A negative start position is treated as zero.
1312
     * A start position greater than the string length returns {@code -1}.</p>
1313
     *
1314
     * <pre>
1315
     * StringUtils.indexOf(null, *, *)          = -1
1316
     * StringUtils.indexOf("", *, *)            = -1
1317
     * StringUtils.indexOf("aabaabaa", 'b', 0)  = 2
1318
     * StringUtils.indexOf("aabaabaa", 'b', 3)  = 5
1319
     * StringUtils.indexOf("aabaabaa", 'b', 9)  = -1
1320
     * StringUtils.indexOf("aabaabaa", 'b', -1) = 2
1321
     * </pre>
1322
     *
1323
     * @param seq  the CharSequence to check, may be null
1324
     * @param searchChar  the character to find
1325
     * @param startPos  the start position, negative treated as zero
1326
     * @return the first index of the search character (always &ge; startPos),
1327
     *  -1 if no match or {@code null} string input
1328
     * @since 2.0
1329
     * @since 3.0 Changed signature from indexOf(String, int, int) to indexOf(CharSequence, int, int)
1330
     */
1331
    public static int indexOf(final CharSequence seq, final int searchChar, final int startPos) {
1332 1 1. indexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1333 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1334
        }
1335 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, startPos);
1336
    }
1337
1338
    /**
1339
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1340
     * This method uses {@link String#indexOf(String, int)} if possible.</p>
1341
     *
1342
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1343
     *
1344
     * <pre>
1345
     * StringUtils.indexOf(null, *)          = -1
1346
     * StringUtils.indexOf(*, null)          = -1
1347
     * StringUtils.indexOf("", "")           = 0
1348
     * StringUtils.indexOf("", *)            = -1 (except when * = "")
1349
     * StringUtils.indexOf("aabaabaa", "a")  = 0
1350
     * StringUtils.indexOf("aabaabaa", "b")  = 2
1351
     * StringUtils.indexOf("aabaabaa", "ab") = 1
1352
     * StringUtils.indexOf("aabaabaa", "")   = 0
1353
     * </pre>
1354
     *
1355
     * @param seq  the CharSequence to check, may be null
1356
     * @param searchSeq  the CharSequence to find, may be null
1357
     * @return the first index of the search CharSequence,
1358
     *  -1 if no match or {@code null} string input
1359
     * @since 2.0
1360
     * @since 3.0 Changed signature from indexOf(String, String) to indexOf(CharSequence, CharSequence)
1361
     */
1362
    public static int indexOf(final CharSequence seq, final CharSequence searchSeq) {
1363 2 1. indexOf : negated conditional → KILLED
2. indexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1364 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1365
        }
1366 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, 0);
1367
    }
1368
1369
    /**
1370
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1371
     * This method uses {@link String#indexOf(String, int)} if possible.</p>
1372
     *
1373
     * <p>A {@code null} CharSequence will return {@code -1}.
1374
     * A negative start position is treated as zero.
1375
     * An empty ("") search CharSequence always matches.
1376
     * A start position greater than the string length only matches
1377
     * an empty search CharSequence.</p>
1378
     *
1379
     * <pre>
1380
     * StringUtils.indexOf(null, *, *)          = -1
1381
     * StringUtils.indexOf(*, null, *)          = -1
1382
     * StringUtils.indexOf("", "", 0)           = 0
1383
     * StringUtils.indexOf("", *, 0)            = -1 (except when * = "")
1384
     * StringUtils.indexOf("aabaabaa", "a", 0)  = 0
1385
     * StringUtils.indexOf("aabaabaa", "b", 0)  = 2
1386
     * StringUtils.indexOf("aabaabaa", "ab", 0) = 1
1387
     * StringUtils.indexOf("aabaabaa", "b", 3)  = 5
1388
     * StringUtils.indexOf("aabaabaa", "b", 9)  = -1
1389
     * StringUtils.indexOf("aabaabaa", "b", -1) = 2
1390
     * StringUtils.indexOf("aabaabaa", "", 2)   = 2
1391
     * StringUtils.indexOf("abc", "", 9)        = 3
1392
     * </pre>
1393
     *
1394
     * @param seq  the CharSequence to check, may be null
1395
     * @param searchSeq  the CharSequence to find, may be null
1396
     * @param startPos  the start position, negative treated as zero
1397
     * @return the first index of the search CharSequence (always &ge; startPos),
1398
     *  -1 if no match or {@code null} string input
1399
     * @since 2.0
1400
     * @since 3.0 Changed signature from indexOf(String, String, int) to indexOf(CharSequence, CharSequence, int)
1401
     */
1402
    public static int indexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) {
1403 2 1. indexOf : negated conditional → KILLED
2. indexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1404 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1405
        }
1406 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, startPos);
1407
    }
1408
1409
    /**
1410
     * <p>Finds the n-th index within a CharSequence, handling {@code null}.
1411
     * This method uses {@link String#indexOf(String)} if possible.</p>
1412
     * <p><b>Note:</b> The code starts looking for a match at the start of the target,
1413
     * incrementing the starting index by one after each successful match
1414
     * (unless {@code searchStr} is an empty string in which case the position
1415
     * is never incremented and {@code 0} is returned immediately).
1416
     * This means that matches may overlap.</p>
1417
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1418
     *
1419
     * <pre>
1420
     * StringUtils.ordinalIndexOf(null, *, *)          = -1
1421
     * StringUtils.ordinalIndexOf(*, null, *)          = -1
1422
     * StringUtils.ordinalIndexOf("", "", *)           = 0
1423
     * StringUtils.ordinalIndexOf("aabaabaa", "a", 1)  = 0
1424
     * StringUtils.ordinalIndexOf("aabaabaa", "a", 2)  = 1
1425
     * StringUtils.ordinalIndexOf("aabaabaa", "b", 1)  = 2
1426
     * StringUtils.ordinalIndexOf("aabaabaa", "b", 2)  = 5
1427
     * StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1
1428
     * StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4
1429
     * StringUtils.ordinalIndexOf("aabaabaa", "", 1)   = 0
1430
     * StringUtils.ordinalIndexOf("aabaabaa", "", 2)   = 0
1431
     * </pre>
1432
     *
1433
     * <p>Matches may overlap:</p>
1434
     * <pre>
1435
     * StringUtils.ordinalIndexOf("ababab","aba", 1)   = 0
1436
     * StringUtils.ordinalIndexOf("ababab","aba", 2)   = 2
1437
     * StringUtils.ordinalIndexOf("ababab","aba", 3)   = -1
1438
     *
1439
     * StringUtils.ordinalIndexOf("abababab", "abab", 1) = 0
1440
     * StringUtils.ordinalIndexOf("abababab", "abab", 2) = 2
1441
     * StringUtils.ordinalIndexOf("abababab", "abab", 3) = 4
1442
     * StringUtils.ordinalIndexOf("abababab", "abab", 4) = -1
1443
     * </pre>
1444
     *
1445
     * <p>Note that 'head(CharSequence str, int n)' may be implemented as: </p>
1446
     *
1447
     * <pre>
1448
     *   str.substring(0, lastOrdinalIndexOf(str, "\n", n))
1449
     * </pre>
1450
     *
1451
     * @param str  the CharSequence to check, may be null
1452
     * @param searchStr  the CharSequence to find, may be null
1453
     * @param ordinal  the n-th {@code searchStr} to find
1454
     * @return the n-th index of the search CharSequence,
1455
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1456
     * @since 2.1
1457
     * @since 3.0 Changed signature from ordinalIndexOf(String, String, int) to ordinalIndexOf(CharSequence, CharSequence, int)
1458
     */
1459
    public static int ordinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal) {
1460 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ordinalIndexOf(str, searchStr, ordinal, false);
1461
    }
1462
1463
    /**
1464
     * <p>Finds the n-th index within a String, handling {@code null}.
1465
     * This method uses {@link String#indexOf(String)} if possible.</p>
1466
     * <p>Note that matches may overlap<p>
1467
     *
1468
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1469
     *
1470
     * @param str  the CharSequence to check, may be null
1471
     * @param searchStr  the CharSequence to find, may be null
1472
     * @param ordinal  the n-th {@code searchStr} to find, overlapping matches are allowed.
1473
     * @param lastIndex true if lastOrdinalIndexOf() otherwise false if ordinalIndexOf()
1474
     * @return the n-th index of the search CharSequence,
1475
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1476
     */
1477
    // Shared code between ordinalIndexOf(String,String,int) and lastOrdinalIndexOf(String,String,int)
1478
    private static int ordinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal, final boolean lastIndex) {
1479 4 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
3. ordinalIndexOf : negated conditional → KILLED
4. ordinalIndexOf : negated conditional → KILLED
        if (str == null || searchStr == null || ordinal <= 0) {
1480 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1481
        }
1482 1 1. ordinalIndexOf : negated conditional → KILLED
        if (searchStr.length() == 0) {
1483 2 1. ordinalIndexOf : negated conditional → KILLED
2. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return lastIndex ? str.length() : 0;
1484
        }
1485
        int found = 0;
1486
        // set the initial index beyond the end of the string
1487
        // this is to allow for the initial index decrement/increment
1488 1 1. ordinalIndexOf : negated conditional → KILLED
        int index = lastIndex ? str.length() : INDEX_NOT_FOUND;
1489
        do {
1490 1 1. ordinalIndexOf : negated conditional → KILLED
            if (lastIndex) {
1491 1 1. ordinalIndexOf : Replaced integer subtraction with addition → KILLED
                index = CharSequenceUtils.lastIndexOf(str, searchStr, index - 1); // step backwards thru string
1492
            } else {
1493 1 1. ordinalIndexOf : Replaced integer addition with subtraction → KILLED
                index = CharSequenceUtils.indexOf(str, searchStr, index + 1); // step forwards through string
1494
            }
1495 2 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
            if (index < 0) {
1496 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return index;
1497
            }
1498 1 1. ordinalIndexOf : Changed increment from 1 to -1 → KILLED
            found++;
1499 2 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
        } while (found < ordinal);
1500 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return index;
1501
    }
1502
1503
    /**
1504
     * <p>Case in-sensitive find of the first index within a CharSequence.</p>
1505
     *
1506
     * <p>A {@code null} CharSequence will return {@code -1}.
1507
     * A negative start position is treated as zero.
1508
     * An empty ("") search CharSequence always matches.
1509
     * A start position greater than the string length only matches
1510
     * an empty search CharSequence.</p>
1511
     *
1512
     * <pre>
1513
     * StringUtils.indexOfIgnoreCase(null, *)          = -1
1514
     * StringUtils.indexOfIgnoreCase(*, null)          = -1
1515
     * StringUtils.indexOfIgnoreCase("", "")           = 0
1516
     * StringUtils.indexOfIgnoreCase("aabaabaa", "a")  = 0
1517
     * StringUtils.indexOfIgnoreCase("aabaabaa", "b")  = 2
1518
     * StringUtils.indexOfIgnoreCase("aabaabaa", "ab") = 1
1519
     * </pre>
1520
     *
1521
     * @param str  the CharSequence to check, may be null
1522
     * @param searchStr  the CharSequence to find, may be null
1523
     * @return the first index of the search CharSequence,
1524
     *  -1 if no match or {@code null} string input
1525
     * @since 2.5
1526
     * @since 3.0 Changed signature from indexOfIgnoreCase(String, String) to indexOfIgnoreCase(CharSequence, CharSequence)
1527
     */
1528
    public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1529 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfIgnoreCase(str, searchStr, 0);
1530
    }
1531
1532
    /**
1533
     * <p>Case in-sensitive find of the first index within a CharSequence
1534
     * from the specified position.</p>
1535
     *
1536
     * <p>A {@code null} CharSequence will return {@code -1}.
1537
     * A negative start position is treated as zero.
1538
     * An empty ("") search CharSequence always matches.
1539
     * A start position greater than the string length only matches
1540
     * an empty search CharSequence.</p>
1541
     *
1542
     * <pre>
1543
     * StringUtils.indexOfIgnoreCase(null, *, *)          = -1
1544
     * StringUtils.indexOfIgnoreCase(*, null, *)          = -1
1545
     * StringUtils.indexOfIgnoreCase("", "", 0)           = 0
1546
     * StringUtils.indexOfIgnoreCase("aabaabaa", "A", 0)  = 0
1547
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 0)  = 2
1548
     * StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 0) = 1
1549
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 3)  = 5
1550
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 9)  = -1
1551
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", -1) = 2
1552
     * StringUtils.indexOfIgnoreCase("aabaabaa", "", 2)   = 2
1553
     * StringUtils.indexOfIgnoreCase("abc", "", 9)        = -1
1554
     * </pre>
1555
     *
1556
     * @param str  the CharSequence to check, may be null
1557
     * @param searchStr  the CharSequence to find, may be null
1558
     * @param startPos  the start position, negative treated as zero
1559
     * @return the first index of the search CharSequence (always &ge; startPos),
1560
     *  -1 if no match or {@code null} string input
1561
     * @since 2.5
1562
     * @since 3.0 Changed signature from indexOfIgnoreCase(String, String, int) to indexOfIgnoreCase(CharSequence, CharSequence, int)
1563
     */
1564
    public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos) {
1565 2 1. indexOfIgnoreCase : negated conditional → KILLED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1566 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1567
        }
1568 2 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (startPos < 0) {
1569
            startPos = 0;
1570
        }
1571 2 1. indexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
2. indexOfIgnoreCase : Replaced integer addition with subtraction → KILLED
        final int endLimit = str.length() - searchStr.length() + 1;
1572 2 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (startPos > endLimit) {
1573 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1574
        }
1575 1 1. indexOfIgnoreCase : negated conditional → KILLED
        if (searchStr.length() == 0) {
1576 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return startPos;
1577
        }
1578 3 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : Changed increment from 1 to -1 → TIMED_OUT
3. indexOfIgnoreCase : negated conditional → KILLED
        for (int i = startPos; i < endLimit; i++) {
1579 1 1. indexOfIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, searchStr.length())) {
1580 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return i;
1581
            }
1582
        }
1583 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
1584
    }
1585
1586
    // LastIndexOf
1587
    //-----------------------------------------------------------------------
1588
    /**
1589
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1590
     * This method uses {@link String#lastIndexOf(int)} if possible.</p>
1591
     *
1592
     * <p>A {@code null} or empty ("") CharSequence will return {@code -1}.</p>
1593
     *
1594
     * <pre>
1595
     * StringUtils.lastIndexOf(null, *)         = -1
1596
     * StringUtils.lastIndexOf("", *)           = -1
1597
     * StringUtils.lastIndexOf("aabaabaa", 'a') = 7
1598
     * StringUtils.lastIndexOf("aabaabaa", 'b') = 5
1599
     * </pre>
1600
     *
1601
     * @param seq  the CharSequence to check, may be null
1602
     * @param searchChar  the character to find
1603
     * @return the last index of the search character,
1604
     *  -1 if no match or {@code null} string input
1605
     * @since 2.0
1606
     * @since 3.0 Changed signature from lastIndexOf(String, int) to lastIndexOf(CharSequence, int)
1607
     */
1608
    public static int lastIndexOf(final CharSequence seq, final int searchChar) {
1609 1 1. lastIndexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1610 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1611
        }
1612 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchChar, seq.length());
1613
    }
1614
1615
    /**
1616
     * <p>Finds the last index within a CharSequence from a start position,
1617
     * handling {@code null}.
1618
     * This method uses {@link String#lastIndexOf(int, int)} if possible.</p>
1619
     *
1620
     * <p>A {@code null} or empty ("") CharSequence will return {@code -1}.
1621
     * A negative start position returns {@code -1}.
1622
     * A start position greater than the string length searches the whole string.
1623
     * The search starts at the startPos and works backwards; matches starting after the start
1624
     * position are ignored.
1625
     * </p>
1626
     *
1627
     * <pre>
1628
     * StringUtils.lastIndexOf(null, *, *)          = -1
1629
     * StringUtils.lastIndexOf("", *,  *)           = -1
1630
     * StringUtils.lastIndexOf("aabaabaa", 'b', 8)  = 5
1631
     * StringUtils.lastIndexOf("aabaabaa", 'b', 4)  = 2
1632
     * StringUtils.lastIndexOf("aabaabaa", 'b', 0)  = -1
1633
     * StringUtils.lastIndexOf("aabaabaa", 'b', 9)  = 5
1634
     * StringUtils.lastIndexOf("aabaabaa", 'b', -1) = -1
1635
     * StringUtils.lastIndexOf("aabaabaa", 'a', 0)  = 0
1636
     * </pre>
1637
     *
1638
     * @param seq  the CharSequence to check, may be null
1639
     * @param searchChar  the character to find
1640
     * @param startPos  the start position
1641
     * @return the last index of the search character (always &le; startPos),
1642
     *  -1 if no match or {@code null} string input
1643
     * @since 2.0
1644
     * @since 3.0 Changed signature from lastIndexOf(String, int, int) to lastIndexOf(CharSequence, int, int)
1645
     */
1646
    public static int lastIndexOf(final CharSequence seq, final int searchChar, final int startPos) {
1647 1 1. lastIndexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1648 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1649
        }
1650 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchChar, startPos);
1651
    }
1652
1653
    /**
1654
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1655
     * This method uses {@link String#lastIndexOf(String)} if possible.</p>
1656
     *
1657
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1658
     *
1659
     * <pre>
1660
     * StringUtils.lastIndexOf(null, *)          = -1
1661
     * StringUtils.lastIndexOf(*, null)          = -1
1662
     * StringUtils.lastIndexOf("", "")           = 0
1663
     * StringUtils.lastIndexOf("aabaabaa", "a")  = 7
1664
     * StringUtils.lastIndexOf("aabaabaa", "b")  = 5
1665
     * StringUtils.lastIndexOf("aabaabaa", "ab") = 4
1666
     * StringUtils.lastIndexOf("aabaabaa", "")   = 8
1667
     * </pre>
1668
     *
1669
     * @param seq  the CharSequence to check, may be null
1670
     * @param searchSeq  the CharSequence to find, may be null
1671
     * @return the last index of the search String,
1672
     *  -1 if no match or {@code null} string input
1673
     * @since 2.0
1674
     * @since 3.0 Changed signature from lastIndexOf(String, String) to lastIndexOf(CharSequence, CharSequence)
1675
     */
1676
    public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq) {
1677 2 1. lastIndexOf : negated conditional → KILLED
2. lastIndexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1678 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1679
        }
1680 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchSeq, seq.length());
1681
    }
1682
1683
    /**
1684
     * <p>Finds the n-th last index within a String, handling {@code null}.
1685
     * This method uses {@link String#lastIndexOf(String)}.</p>
1686
     *
1687
     * <p>A {@code null} String will return {@code -1}.</p>
1688
     *
1689
     * <pre>
1690
     * StringUtils.lastOrdinalIndexOf(null, *, *)          = -1
1691
     * StringUtils.lastOrdinalIndexOf(*, null, *)          = -1
1692
     * StringUtils.lastOrdinalIndexOf("", "", *)           = 0
1693
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 1)  = 7
1694
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 2)  = 6
1695
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 1)  = 5
1696
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 2)  = 2
1697
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 1) = 4
1698
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 2) = 1
1699
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "", 1)   = 8
1700
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "", 2)   = 8
1701
     * </pre>
1702
     *
1703
     * <p>Note that 'tail(CharSequence str, int n)' may be implemented as: </p>
1704
     *
1705
     * <pre>
1706
     *   str.substring(lastOrdinalIndexOf(str, "\n", n) + 1)
1707
     * </pre>
1708
     *
1709
     * @param str  the CharSequence to check, may be null
1710
     * @param searchStr  the CharSequence to find, may be null
1711
     * @param ordinal  the n-th last {@code searchStr} to find
1712
     * @return the n-th last index of the search CharSequence,
1713
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1714
     * @since 2.5
1715
     * @since 3.0 Changed signature from lastOrdinalIndexOf(String, String, int) to lastOrdinalIndexOf(CharSequence, CharSequence, int)
1716
     */
1717
    public static int lastOrdinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal) {
1718 1 1. lastOrdinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ordinalIndexOf(str, searchStr, ordinal, true);
1719
    }
1720
1721
    /**
1722
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1723
     * This method uses {@link String#lastIndexOf(String, int)} if possible.</p>
1724
     *
1725
     * <p>A {@code null} CharSequence will return {@code -1}.
1726
     * A negative start position returns {@code -1}.
1727
     * An empty ("") search CharSequence always matches unless the start position is negative.
1728
     * A start position greater than the string length searches the whole string.
1729
     * The search starts at the startPos and works backwards; matches starting after the start
1730
     * position are ignored.
1731
     * </p>
1732
     *
1733
     * <pre>
1734
     * StringUtils.lastIndexOf(null, *, *)          = -1
1735
     * StringUtils.lastIndexOf(*, null, *)          = -1
1736
     * StringUtils.lastIndexOf("aabaabaa", "a", 8)  = 7
1737
     * StringUtils.lastIndexOf("aabaabaa", "b", 8)  = 5
1738
     * StringUtils.lastIndexOf("aabaabaa", "ab", 8) = 4
1739
     * StringUtils.lastIndexOf("aabaabaa", "b", 9)  = 5
1740
     * StringUtils.lastIndexOf("aabaabaa", "b", -1) = -1
1741
     * StringUtils.lastIndexOf("aabaabaa", "a", 0)  = 0
1742
     * StringUtils.lastIndexOf("aabaabaa", "b", 0)  = -1
1743
     * StringUtils.lastIndexOf("aabaabaa", "b", 1)  = -1
1744
     * StringUtils.lastIndexOf("aabaabaa", "b", 2)  = 2
1745
     * StringUtils.lastIndexOf("aabaabaa", "ba", 2)  = -1
1746
     * StringUtils.lastIndexOf("aabaabaa", "ba", 2)  = 2
1747
     * </pre>
1748
     *
1749
     * @param seq  the CharSequence to check, may be null
1750
     * @param searchSeq  the CharSequence to find, may be null
1751
     * @param startPos  the start position, negative treated as zero
1752
     * @return the last index of the search CharSequence (always &le; startPos),
1753
     *  -1 if no match or {@code null} string input
1754
     * @since 2.0
1755
     * @since 3.0 Changed signature from lastIndexOf(String, String, int) to lastIndexOf(CharSequence, CharSequence, int)
1756
     */
1757
    public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) {
1758 2 1. lastIndexOf : negated conditional → KILLED
2. lastIndexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1759 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1760
        }
1761 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchSeq, startPos);
1762
    }
1763
1764
    /**
1765
     * <p>Case in-sensitive find of the last index within a CharSequence.</p>
1766
     *
1767
     * <p>A {@code null} CharSequence will return {@code -1}.
1768
     * A negative start position returns {@code -1}.
1769
     * An empty ("") search CharSequence always matches unless the start position is negative.
1770
     * A start position greater than the string length searches the whole string.</p>
1771
     *
1772
     * <pre>
1773
     * StringUtils.lastIndexOfIgnoreCase(null, *)          = -1
1774
     * StringUtils.lastIndexOfIgnoreCase(*, null)          = -1
1775
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A")  = 7
1776
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B")  = 5
1777
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB") = 4
1778
     * </pre>
1779
     *
1780
     * @param str  the CharSequence to check, may be null
1781
     * @param searchStr  the CharSequence to find, may be null
1782
     * @return the first index of the search CharSequence,
1783
     *  -1 if no match or {@code null} string input
1784
     * @since 2.5
1785
     * @since 3.0 Changed signature from lastIndexOfIgnoreCase(String, String) to lastIndexOfIgnoreCase(CharSequence, CharSequence)
1786
     */
1787
    public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1788 2 1. lastIndexOfIgnoreCase : negated conditional → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1789 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1790
        }
1791 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return lastIndexOfIgnoreCase(str, searchStr, str.length());
1792
    }
1793
1794
    /**
1795
     * <p>Case in-sensitive find of the last index within a CharSequence
1796
     * from the specified position.</p>
1797
     *
1798
     * <p>A {@code null} CharSequence will return {@code -1}.
1799
     * A negative start position returns {@code -1}.
1800
     * An empty ("") search CharSequence always matches unless the start position is negative.
1801
     * A start position greater than the string length searches the whole string.
1802
     * The search starts at the startPos and works backwards; matches starting after the start
1803
     * position are ignored.
1804
     * </p>
1805
     *
1806
     * <pre>
1807
     * StringUtils.lastIndexOfIgnoreCase(null, *, *)          = -1
1808
     * StringUtils.lastIndexOfIgnoreCase(*, null, *)          = -1
1809
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 8)  = 7
1810
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 8)  = 5
1811
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB", 8) = 4
1812
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 9)  = 5
1813
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", -1) = -1
1814
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 0)  = 0
1815
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 0)  = -1
1816
     * </pre>
1817
     *
1818
     * @param str  the CharSequence to check, may be null
1819
     * @param searchStr  the CharSequence to find, may be null
1820
     * @param startPos  the start position
1821
     * @return the last index of the search CharSequence (always &le; startPos),
1822
     *  -1 if no match or {@code null} input
1823
     * @since 2.5
1824
     * @since 3.0 Changed signature from lastIndexOfIgnoreCase(String, String, int) to lastIndexOfIgnoreCase(CharSequence, CharSequence, int)
1825
     */
1826
    public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos) {
1827 2 1. lastIndexOfIgnoreCase : negated conditional → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1828 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1829
        }
1830 3 1. lastIndexOfIgnoreCase : changed conditional boundary → SURVIVED
2. lastIndexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
3. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (startPos > str.length() - searchStr.length()) {
1831 1 1. lastIndexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
            startPos = str.length() - searchStr.length();
1832
        }
1833 2 1. lastIndexOfIgnoreCase : changed conditional boundary → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (startPos < 0) {
1834 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1835
        }
1836 1 1. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (searchStr.length() == 0) {
1837 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return startPos;
1838
        }
1839
1840 3 1. lastIndexOfIgnoreCase : Changed increment from -1 to 1 → TIMED_OUT
2. lastIndexOfIgnoreCase : changed conditional boundary → KILLED
3. lastIndexOfIgnoreCase : negated conditional → KILLED
        for (int i = startPos; i >= 0; i--) {
1841 1 1. lastIndexOfIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, searchStr.length())) {
1842 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return i;
1843
            }
1844
        }
1845 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
1846
    }
1847
1848
    // Contains
1849
    //-----------------------------------------------------------------------
1850
    /**
1851
     * <p>Checks if CharSequence contains a search character, handling {@code null}.
1852
     * This method uses {@link String#indexOf(int)} if possible.</p>
1853
     *
1854
     * <p>A {@code null} or empty ("") CharSequence will return {@code false}.</p>
1855
     *
1856
     * <pre>
1857
     * StringUtils.contains(null, *)    = false
1858
     * StringUtils.contains("", *)      = false
1859
     * StringUtils.contains("abc", 'a') = true
1860
     * StringUtils.contains("abc", 'z') = false
1861
     * </pre>
1862
     *
1863
     * @param seq  the CharSequence to check, may be null
1864
     * @param searchChar  the character to find
1865
     * @return true if the CharSequence contains the search character,
1866
     *  false if not or {@code null} string input
1867
     * @since 2.0
1868
     * @since 3.0 Changed signature from contains(String, int) to contains(CharSequence, int)
1869
     */
1870
    public static boolean contains(final CharSequence seq, final int searchChar) {
1871 1 1. contains : negated conditional → KILLED
        if (isEmpty(seq)) {
1872 1 1. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1873
        }
1874 3 1. contains : changed conditional boundary → KILLED
2. contains : negated conditional → KILLED
3. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, 0) >= 0;
1875
    }
1876
1877
    /**
1878
     * <p>Checks if CharSequence contains a search CharSequence, handling {@code null}.
1879
     * This method uses {@link String#indexOf(String)} if possible.</p>
1880
     *
1881
     * <p>A {@code null} CharSequence will return {@code false}.</p>
1882
     *
1883
     * <pre>
1884
     * StringUtils.contains(null, *)     = false
1885
     * StringUtils.contains(*, null)     = false
1886
     * StringUtils.contains("", "")      = true
1887
     * StringUtils.contains("abc", "")   = true
1888
     * StringUtils.contains("abc", "a")  = true
1889
     * StringUtils.contains("abc", "z")  = false
1890
     * </pre>
1891
     *
1892
     * @param seq  the CharSequence to check, may be null
1893
     * @param searchSeq  the CharSequence to find, may be null
1894
     * @return true if the CharSequence contains the search CharSequence,
1895
     *  false if not or {@code null} string input
1896
     * @since 2.0
1897
     * @since 3.0 Changed signature from contains(String, String) to contains(CharSequence, CharSequence)
1898
     */
1899
    public static boolean contains(final CharSequence seq, final CharSequence searchSeq) {
1900 2 1. contains : negated conditional → KILLED
2. contains : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1901 1 1. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1902
        }
1903 3 1. contains : changed conditional boundary → KILLED
2. contains : negated conditional → KILLED
3. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, 0) >= 0;
1904
    }
1905
1906
    /**
1907
     * <p>Checks if CharSequence contains a search CharSequence irrespective of case,
1908
     * handling {@code null}. Case-insensitivity is defined as by
1909
     * {@link String#equalsIgnoreCase(String)}.
1910
     *
1911
     * <p>A {@code null} CharSequence will return {@code false}.</p>
1912
     *
1913
     * <pre>
1914
     * StringUtils.containsIgnoreCase(null, *) = false
1915
     * StringUtils.containsIgnoreCase(*, null) = false
1916
     * StringUtils.containsIgnoreCase("", "") = true
1917
     * StringUtils.containsIgnoreCase("abc", "") = true
1918
     * StringUtils.containsIgnoreCase("abc", "a") = true
1919
     * StringUtils.containsIgnoreCase("abc", "z") = false
1920
     * StringUtils.containsIgnoreCase("abc", "A") = true
1921
     * StringUtils.containsIgnoreCase("abc", "Z") = false
1922
     * </pre>
1923
     *
1924
     * @param str  the CharSequence to check, may be null
1925
     * @param searchStr  the CharSequence to find, may be null
1926
     * @return true if the CharSequence contains the search CharSequence irrespective of
1927
     * case or false if not or {@code null} string input
1928
     * @since 3.0 Changed signature from containsIgnoreCase(String, String) to containsIgnoreCase(CharSequence, CharSequence)
1929
     */
1930
    public static boolean containsIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1931 2 1. containsIgnoreCase : negated conditional → KILLED
2. containsIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1932 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1933
        }
1934
        final int len = searchStr.length();
1935 1 1. containsIgnoreCase : Replaced integer subtraction with addition → SURVIVED
        final int max = str.length() - len;
1936 3 1. containsIgnoreCase : Changed increment from 1 to -1 → TIMED_OUT
2. containsIgnoreCase : changed conditional boundary → KILLED
3. containsIgnoreCase : negated conditional → KILLED
        for (int i = 0; i <= max; i++) {
1937 1 1. containsIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, len)) {
1938 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
1939
            }
1940
        }
1941 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1942
    }
1943
1944
    /**
1945
     * <p>Check whether the given CharSequence contains any whitespace characters.</p>
1946
     * 
1947
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
1948
     * 
1949
     * @param seq the CharSequence to check (may be {@code null})
1950
     * @return {@code true} if the CharSequence is not empty and
1951
     * contains at least 1 (breaking) whitespace character
1952
     * @since 3.0
1953
     */
1954
    // From org.springframework.util.StringUtils, under Apache License 2.0
1955
    public static boolean containsWhitespace(final CharSequence seq) {
1956 1 1. containsWhitespace : negated conditional → KILLED
        if (isEmpty(seq)) {
1957 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1958
        }
1959
        final int strLen = seq.length();
1960 3 1. containsWhitespace : changed conditional boundary → KILLED
2. containsWhitespace : Changed increment from 1 to -1 → KILLED
3. containsWhitespace : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
1961 1 1. containsWhitespace : negated conditional → KILLED
            if (Character.isWhitespace(seq.charAt(i))) {
1962 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
1963
            }
1964
        }
1965 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1966
    }
1967
1968
    // IndexOfAny chars
1969
    //-----------------------------------------------------------------------
1970
    /**
1971
     * <p>Search a CharSequence to find the first index of any
1972
     * character in the given set of characters.</p>
1973
     *
1974
     * <p>A {@code null} String will return {@code -1}.
1975
     * A {@code null} or zero length search array will return {@code -1}.</p>
1976
     *
1977
     * <pre>
1978
     * StringUtils.indexOfAny(null, *)                = -1
1979
     * StringUtils.indexOfAny("", *)                  = -1
1980
     * StringUtils.indexOfAny(*, null)                = -1
1981
     * StringUtils.indexOfAny(*, [])                  = -1
1982
     * StringUtils.indexOfAny("zzabyycdxx",['z','a']) = 0
1983
     * StringUtils.indexOfAny("zzabyycdxx",['b','y']) = 3
1984
     * StringUtils.indexOfAny("aba", ['z'])           = -1
1985
     * </pre>
1986
     *
1987
     * @param cs  the CharSequence to check, may be null
1988
     * @param searchChars  the chars to search for, may be null
1989
     * @return the index of any of the chars, -1 if no match or null input
1990
     * @since 2.0
1991
     * @since 3.0 Changed signature from indexOfAny(String, char[]) to indexOfAny(CharSequence, char...)
1992
     */
1993
    public static int indexOfAny(final CharSequence cs, final char... searchChars) {
1994 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
1995 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1996
        }
1997
        final int csLen = cs.length();
1998 1 1. indexOfAny : Replaced integer subtraction with addition → SURVIVED
        final int csLast = csLen - 1;
1999
        final int searchLen = searchChars.length;
2000 1 1. indexOfAny : Replaced integer subtraction with addition → SURVIVED
        final int searchLast = searchLen - 1;
2001 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2002
            final char ch = cs.charAt(i);
2003 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
2004 1 1. indexOfAny : negated conditional → KILLED
                if (searchChars[j] == ch) {
2005 5 1. indexOfAny : changed conditional boundary → SURVIVED
2. indexOfAny : changed conditional boundary → SURVIVED
3. indexOfAny : negated conditional → KILLED
4. indexOfAny : negated conditional → KILLED
5. indexOfAny : negated conditional → KILLED
                    if (i < csLast && j < searchLast && Character.isHighSurrogate(ch)) {
2006
                        // ch is a supplementary character
2007 3 1. indexOfAny : Replaced integer addition with subtraction → KILLED
2. indexOfAny : Replaced integer addition with subtraction → KILLED
3. indexOfAny : negated conditional → KILLED
                        if (searchChars[j + 1] == cs.charAt(i + 1)) {
2008 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return i;
2009
                        }
2010
                    } else {
2011 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return i;
2012
                    }
2013
                }
2014
            }
2015
        }
2016 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2017
    }
2018
2019
    /**
2020
     * <p>Search a CharSequence to find the first index of any
2021
     * character in the given set of characters.</p>
2022
     *
2023
     * <p>A {@code null} String will return {@code -1}.
2024
     * A {@code null} search string will return {@code -1}.</p>
2025
     *
2026
     * <pre>
2027
     * StringUtils.indexOfAny(null, *)            = -1
2028
     * StringUtils.indexOfAny("", *)              = -1
2029
     * StringUtils.indexOfAny(*, null)            = -1
2030
     * StringUtils.indexOfAny(*, "")              = -1
2031
     * StringUtils.indexOfAny("zzabyycdxx", "za") = 0
2032
     * StringUtils.indexOfAny("zzabyycdxx", "by") = 3
2033
     * StringUtils.indexOfAny("aba","z")          = -1
2034
     * </pre>
2035
     *
2036
     * @param cs  the CharSequence to check, may be null
2037
     * @param searchChars  the chars to search for, may be null
2038
     * @return the index of any of the chars, -1 if no match or null input
2039
     * @since 2.0
2040
     * @since 3.0 Changed signature from indexOfAny(String, String) to indexOfAny(CharSequence, String)
2041
     */
2042
    public static int indexOfAny(final CharSequence cs, final String searchChars) {
2043 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (isEmpty(cs) || isEmpty(searchChars)) {
2044 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2045
        }
2046 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfAny(cs, searchChars.toCharArray());
2047
    }
2048
2049
    // ContainsAny
2050
    //-----------------------------------------------------------------------
2051
    /**
2052
     * <p>Checks if the CharSequence contains any character in the given
2053
     * set of characters.</p>
2054
     *
2055
     * <p>A {@code null} CharSequence will return {@code false}.
2056
     * A {@code null} or zero length search array will return {@code false}.</p>
2057
     *
2058
     * <pre>
2059
     * StringUtils.containsAny(null, *)                = false
2060
     * StringUtils.containsAny("", *)                  = false
2061
     * StringUtils.containsAny(*, null)                = false
2062
     * StringUtils.containsAny(*, [])                  = false
2063
     * StringUtils.containsAny("zzabyycdxx",['z','a']) = true
2064
     * StringUtils.containsAny("zzabyycdxx",['b','y']) = true
2065
     * StringUtils.containsAny("zzabyycdxx",['z','y']) = true
2066
     * StringUtils.containsAny("aba", ['z'])           = false
2067
     * </pre>
2068
     *
2069
     * @param cs  the CharSequence to check, may be null
2070
     * @param searchChars  the chars to search for, may be null
2071
     * @return the {@code true} if any of the chars are found,
2072
     * {@code false} if no match or null input
2073
     * @since 2.4
2074
     * @since 3.0 Changed signature from containsAny(String, char[]) to containsAny(CharSequence, char...)
2075
     */
2076
    public static boolean containsAny(final CharSequence cs, final char... searchChars) {
2077 2 1. containsAny : negated conditional → KILLED
2. containsAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
2078 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2079
        }
2080
        final int csLength = cs.length();
2081
        final int searchLength = searchChars.length;
2082 1 1. containsAny : Replaced integer subtraction with addition → KILLED
        final int csLast = csLength - 1;
2083 1 1. containsAny : Replaced integer subtraction with addition → KILLED
        final int searchLast = searchLength - 1;
2084 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
        for (int i = 0; i < csLength; i++) {
2085
            final char ch = cs.charAt(i);
2086 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
            for (int j = 0; j < searchLength; j++) {
2087 1 1. containsAny : negated conditional → KILLED
                if (searchChars[j] == ch) {
2088 1 1. containsAny : negated conditional → KILLED
                    if (Character.isHighSurrogate(ch)) {
2089 1 1. containsAny : negated conditional → KILLED
                        if (j == searchLast) {
2090
                            // missing low surrogate, fine, like String.indexOf(String)
2091 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return true;
2092
                        }
2093 5 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Replaced integer addition with subtraction → KILLED
3. containsAny : Replaced integer addition with subtraction → KILLED
4. containsAny : negated conditional → KILLED
5. containsAny : negated conditional → KILLED
                        if (i < csLast && searchChars[j + 1] == cs.charAt(i + 1)) {
2094 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return true;
2095
                        }
2096
                    } else {
2097
                        // ch is in the Basic Multilingual Plane
2098 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return true;
2099
                    }
2100
                }
2101
            }
2102
        }
2103 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
2104
    }
2105
2106
    /**
2107
     * <p>
2108
     * Checks if the CharSequence contains any character in the given set of characters.
2109
     * </p>
2110
     *
2111
     * <p>
2112
     * A {@code null} CharSequence will return {@code false}. A {@code null} search CharSequence will return
2113
     * {@code false}.
2114
     * </p>
2115
     *
2116
     * <pre>
2117
     * StringUtils.containsAny(null, *)               = false
2118
     * StringUtils.containsAny("", *)                 = false
2119
     * StringUtils.containsAny(*, null)               = false
2120
     * StringUtils.containsAny(*, "")                 = false
2121
     * StringUtils.containsAny("zzabyycdxx", "za")    = true
2122
     * StringUtils.containsAny("zzabyycdxx", "by")    = true
2123
     * StringUtils.containsAny("zzabyycdxx", "zy")    = true
2124
     * StringUtils.containsAny("zzabyycdxx", "\tx")   = true
2125
     * StringUtils.containsAny("zzabyycdxx", "$.#yF") = true
2126
     * StringUtils.containsAny("aba","z")             = false
2127
     * </pre>
2128
     *
2129
     * @param cs
2130
     *            the CharSequence to check, may be null
2131
     * @param searchChars
2132
     *            the chars to search for, may be null
2133
     * @return the {@code true} if any of the chars are found, {@code false} if no match or null input
2134
     * @since 2.4
2135
     * @since 3.0 Changed signature from containsAny(String, String) to containsAny(CharSequence, CharSequence)
2136
     */
2137
    public static boolean containsAny(final CharSequence cs, final CharSequence searchChars) {
2138 1 1. containsAny : negated conditional → KILLED
        if (searchChars == null) {
2139 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2140
        }
2141 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsAny(cs, CharSequenceUtils.toCharArray(searchChars));
2142
    }
2143
2144
    /**
2145
     * <p>Checks if the CharSequence contains any of the CharSequences in the given array.</p>
2146
     *
2147
     * <p>
2148
     * A {@code null} {@code cs} CharSequence will return {@code false}. A {@code null} or zero
2149
     * length search array will return {@code false}.
2150
     * </p>
2151
     *
2152
     * <pre>
2153
     * StringUtils.containsAny(null, *)            = false
2154
     * StringUtils.containsAny("", *)              = false
2155
     * StringUtils.containsAny(*, null)            = false
2156
     * StringUtils.containsAny(*, [])              = false
2157
     * StringUtils.containsAny("abcd", "ab", null) = true
2158
     * StringUtils.containsAny("abcd", "ab", "cd") = true
2159
     * StringUtils.containsAny("abc", "d", "abc")  = true
2160
     * </pre>
2161
     *
2162
     * 
2163
     * @param cs The CharSequence to check, may be null
2164
     * @param searchCharSequences The array of CharSequences to search for, may be null.
2165
     * Individual CharSequences may be null as well.
2166
     * @return {@code true} if any of the search CharSequences are found, {@code false} otherwise
2167
     * @since 3.4
2168
     */
2169
    public static boolean containsAny(final CharSequence cs, final CharSequence... searchCharSequences) {
2170 2 1. containsAny : negated conditional → KILLED
2. containsAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchCharSequences)) {
2171 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2172
        }
2173 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
        for (final CharSequence searchCharSequence : searchCharSequences) {
2174 1 1. containsAny : negated conditional → KILLED
            if (contains(cs, searchCharSequence)) {
2175 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
2176
            }
2177
        }
2178 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
2179
    }
2180
2181
    // IndexOfAnyBut chars
2182
    //-----------------------------------------------------------------------
2183
    /**
2184
     * <p>Searches a CharSequence to find the first index of any
2185
     * character not in the given set of characters.</p>
2186
     *
2187
     * <p>A {@code null} CharSequence will return {@code -1}.
2188
     * A {@code null} or zero length search array will return {@code -1}.</p>
2189
     *
2190
     * <pre>
2191
     * StringUtils.indexOfAnyBut(null, *)                              = -1
2192
     * StringUtils.indexOfAnyBut("", *)                                = -1
2193
     * StringUtils.indexOfAnyBut(*, null)                              = -1
2194
     * StringUtils.indexOfAnyBut(*, [])                                = -1
2195
     * StringUtils.indexOfAnyBut("zzabyycdxx", new char[] {'z', 'a'} ) = 3
2196
     * StringUtils.indexOfAnyBut("aba", new char[] {'z'} )             = 0
2197
     * StringUtils.indexOfAnyBut("aba", new char[] {'a', 'b'} )        = -1
2198
2199
     * </pre>
2200
     *
2201
     * @param cs  the CharSequence to check, may be null
2202
     * @param searchChars  the chars to search for, may be null
2203
     * @return the index of any of the chars, -1 if no match or null input
2204
     * @since 2.0
2205
     * @since 3.0 Changed signature from indexOfAnyBut(String, char[]) to indexOfAnyBut(CharSequence, char...)
2206
     */
2207
    public static int indexOfAnyBut(final CharSequence cs, final char... searchChars) {
2208 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
2209 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2210
        }
2211
        final int csLen = cs.length();
2212 1 1. indexOfAnyBut : Replaced integer subtraction with addition → SURVIVED
        final int csLast = csLen - 1;
2213
        final int searchLen = searchChars.length;
2214 1 1. indexOfAnyBut : Replaced integer subtraction with addition → SURVIVED
        final int searchLast = searchLen - 1;
2215
        outer:
2216 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2217
            final char ch = cs.charAt(i);
2218 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
2219 1 1. indexOfAnyBut : negated conditional → KILLED
                if (searchChars[j] == ch) {
2220 5 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : changed conditional boundary → SURVIVED
3. indexOfAnyBut : negated conditional → KILLED
4. indexOfAnyBut : negated conditional → KILLED
5. indexOfAnyBut : negated conditional → KILLED
                    if (i < csLast && j < searchLast && Character.isHighSurrogate(ch)) {
2221 3 1. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
2. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
3. indexOfAnyBut : negated conditional → KILLED
                        if (searchChars[j + 1] == cs.charAt(i + 1)) {
2222
                            continue outer;
2223
                        }
2224
                    } else {
2225
                        continue outer;
2226
                    }
2227
                }
2228
            }
2229 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return i;
2230
        }
2231 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2232
    }
2233
2234
    /**
2235
     * <p>Search a CharSequence to find the first index of any
2236
     * character not in the given set of characters.</p>
2237
     *
2238
     * <p>A {@code null} CharSequence will return {@code -1}.
2239
     * A {@code null} or empty search string will return {@code -1}.</p>
2240
     *
2241
     * <pre>
2242
     * StringUtils.indexOfAnyBut(null, *)            = -1
2243
     * StringUtils.indexOfAnyBut("", *)              = -1
2244
     * StringUtils.indexOfAnyBut(*, null)            = -1
2245
     * StringUtils.indexOfAnyBut(*, "")              = -1
2246
     * StringUtils.indexOfAnyBut("zzabyycdxx", "za") = 3
2247
     * StringUtils.indexOfAnyBut("zzabyycdxx", "")   = -1
2248
     * StringUtils.indexOfAnyBut("aba","ab")         = -1
2249
     * </pre>
2250
     *
2251
     * @param seq  the CharSequence to check, may be null
2252
     * @param searchChars  the chars to search for, may be null
2253
     * @return the index of any of the chars, -1 if no match or null input
2254
     * @since 2.0
2255
     * @since 3.0 Changed signature from indexOfAnyBut(String, String) to indexOfAnyBut(CharSequence, CharSequence)
2256
     */
2257
    public static int indexOfAnyBut(final CharSequence seq, final CharSequence searchChars) {
2258 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : negated conditional → KILLED
        if (isEmpty(seq) || isEmpty(searchChars)) {
2259 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2260
        }
2261
        final int strLen = seq.length();
2262 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
2263
            final char ch = seq.charAt(i);
2264 2 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : negated conditional → KILLED
            final boolean chFound = CharSequenceUtils.indexOf(searchChars, ch, 0) >= 0;
2265 4 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : Replaced integer addition with subtraction → SURVIVED
3. indexOfAnyBut : negated conditional → KILLED
4. indexOfAnyBut : negated conditional → KILLED
            if (i + 1 < strLen && Character.isHighSurrogate(ch)) {
2266 1 1. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
                final char ch2 = seq.charAt(i + 1);
2267 3 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : negated conditional → KILLED
3. indexOfAnyBut : negated conditional → KILLED
                if (chFound && CharSequenceUtils.indexOf(searchChars, ch2, 0) < 0) {
2268 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return i;
2269
                }
2270
            } else {
2271 1 1. indexOfAnyBut : negated conditional → KILLED
                if (!chFound) {
2272 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return i;
2273
                }
2274
            }
2275
        }
2276 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2277
    }
2278
2279
    // ContainsOnly
2280
    //-----------------------------------------------------------------------
2281
    /**
2282
     * <p>Checks if the CharSequence contains only certain characters.</p>
2283
     *
2284
     * <p>A {@code null} CharSequence will return {@code false}.
2285
     * A {@code null} valid character array will return {@code false}.
2286
     * An empty CharSequence (length()=0) always returns {@code true}.</p>
2287
     *
2288
     * <pre>
2289
     * StringUtils.containsOnly(null, *)       = false
2290
     * StringUtils.containsOnly(*, null)       = false
2291
     * StringUtils.containsOnly("", *)         = true
2292
     * StringUtils.containsOnly("ab", '')      = false
2293
     * StringUtils.containsOnly("abab", 'abc') = true
2294
     * StringUtils.containsOnly("ab1", 'abc')  = false
2295
     * StringUtils.containsOnly("abz", 'abc')  = false
2296
     * </pre>
2297
     *
2298
     * @param cs  the String to check, may be null
2299
     * @param valid  an array of valid chars, may be null
2300
     * @return true if it only contains valid chars and is non-null
2301
     * @since 3.0 Changed signature from containsOnly(String, char[]) to containsOnly(CharSequence, char...)
2302
     */
2303
    public static boolean containsOnly(final CharSequence cs, final char... valid) {
2304
        // All these pre-checks are to maintain API with an older version
2305 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : negated conditional → KILLED
        if (valid == null || cs == null) {
2306 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2307
        }
2308 1 1. containsOnly : negated conditional → KILLED
        if (cs.length() == 0) {
2309 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2310
        }
2311 1 1. containsOnly : negated conditional → KILLED
        if (valid.length == 0) {
2312 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2313
        }
2314 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfAnyBut(cs, valid) == INDEX_NOT_FOUND;
2315
    }
2316
2317
    /**
2318
     * <p>Checks if the CharSequence contains only certain characters.</p>
2319
     *
2320
     * <p>A {@code null} CharSequence will return {@code false}.
2321
     * A {@code null} valid character String will return {@code false}.
2322
     * An empty String (length()=0) always returns {@code true}.</p>
2323
     *
2324
     * <pre>
2325
     * StringUtils.containsOnly(null, *)       = false
2326
     * StringUtils.containsOnly(*, null)       = false
2327
     * StringUtils.containsOnly("", *)         = true
2328
     * StringUtils.containsOnly("ab", "")      = false
2329
     * StringUtils.containsOnly("abab", "abc") = true
2330
     * StringUtils.containsOnly("ab1", "abc")  = false
2331
     * StringUtils.containsOnly("abz", "abc")  = false
2332
     * </pre>
2333
     *
2334
     * @param cs  the CharSequence to check, may be null
2335
     * @param validChars  a String of valid chars, may be null
2336
     * @return true if it only contains valid chars and is non-null
2337
     * @since 2.0
2338
     * @since 3.0 Changed signature from containsOnly(String, String) to containsOnly(CharSequence, String)
2339
     */
2340
    public static boolean containsOnly(final CharSequence cs, final String validChars) {
2341 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : negated conditional → KILLED
        if (cs == null || validChars == null) {
2342 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2343
        }
2344 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsOnly(cs, validChars.toCharArray());
2345
    }
2346
2347
    // ContainsNone
2348
    //-----------------------------------------------------------------------
2349
    /**
2350
     * <p>Checks that the CharSequence does not contain certain characters.</p>
2351
     *
2352
     * <p>A {@code null} CharSequence will return {@code true}.
2353
     * A {@code null} invalid character array will return {@code true}.
2354
     * An empty CharSequence (length()=0) always returns true.</p>
2355
     *
2356
     * <pre>
2357
     * StringUtils.containsNone(null, *)       = true
2358
     * StringUtils.containsNone(*, null)       = true
2359
     * StringUtils.containsNone("", *)         = true
2360
     * StringUtils.containsNone("ab", '')      = true
2361
     * StringUtils.containsNone("abab", 'xyz') = true
2362
     * StringUtils.containsNone("ab1", 'xyz')  = true
2363
     * StringUtils.containsNone("abz", 'xyz')  = false
2364
     * </pre>
2365
     *
2366
     * @param cs  the CharSequence to check, may be null
2367
     * @param searchChars  an array of invalid chars, may be null
2368
     * @return true if it contains none of the invalid chars, or is null
2369
     * @since 2.0
2370
     * @since 3.0 Changed signature from containsNone(String, char[]) to containsNone(CharSequence, char...)
2371
     */
2372
    public static boolean containsNone(final CharSequence cs, final char... searchChars) {
2373 2 1. containsNone : negated conditional → KILLED
2. containsNone : negated conditional → KILLED
        if (cs == null || searchChars == null) {
2374 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2375
        }
2376
        final int csLen = cs.length();
2377 1 1. containsNone : Replaced integer subtraction with addition → KILLED
        final int csLast = csLen - 1;
2378
        final int searchLen = searchChars.length;
2379 1 1. containsNone : Replaced integer subtraction with addition → KILLED
        final int searchLast = searchLen - 1;
2380 3 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Changed increment from 1 to -1 → KILLED
3. containsNone : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2381
            final char ch = cs.charAt(i);
2382 3 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Changed increment from 1 to -1 → KILLED
3. containsNone : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
2383 1 1. containsNone : negated conditional → KILLED
                if (searchChars[j] == ch) {
2384 1 1. containsNone : negated conditional → KILLED
                    if (Character.isHighSurrogate(ch)) {
2385 1 1. containsNone : negated conditional → KILLED
                        if (j == searchLast) {
2386
                            // missing low surrogate, fine, like String.indexOf(String)
2387 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return false;
2388
                        }
2389 5 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Replaced integer addition with subtraction → KILLED
3. containsNone : Replaced integer addition with subtraction → KILLED
4. containsNone : negated conditional → KILLED
5. containsNone : negated conditional → KILLED
                        if (i < csLast && searchChars[j + 1] == cs.charAt(i + 1)) {
2390 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return false;
2391
                        }
2392
                    } else {
2393
                        // ch is in the Basic Multilingual Plane
2394 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return false;
2395
                    }
2396
                }
2397
            }
2398
        }
2399 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
2400
    }
2401
2402
    /**
2403
     * <p>Checks that the CharSequence does not contain certain characters.</p>
2404
     *
2405
     * <p>A {@code null} CharSequence will return {@code true}.
2406
     * A {@code null} invalid character array will return {@code true}.
2407
     * An empty String ("") always returns true.</p>
2408
     *
2409
     * <pre>
2410
     * StringUtils.containsNone(null, *)       = true
2411
     * StringUtils.containsNone(*, null)       = true
2412
     * StringUtils.containsNone("", *)         = true
2413
     * StringUtils.containsNone("ab", "")      = true
2414
     * StringUtils.containsNone("abab", "xyz") = true
2415
     * StringUtils.containsNone("ab1", "xyz")  = true
2416
     * StringUtils.containsNone("abz", "xyz")  = false
2417
     * </pre>
2418
     *
2419
     * @param cs  the CharSequence to check, may be null
2420
     * @param invalidChars  a String of invalid chars, may be null
2421
     * @return true if it contains none of the invalid chars, or is null
2422
     * @since 2.0
2423
     * @since 3.0 Changed signature from containsNone(String, String) to containsNone(CharSequence, String)
2424
     */
2425
    public static boolean containsNone(final CharSequence cs, final String invalidChars) {
2426 2 1. containsNone : negated conditional → KILLED
2. containsNone : negated conditional → KILLED
        if (cs == null || invalidChars == null) {
2427 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2428
        }
2429 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsNone(cs, invalidChars.toCharArray());
2430
    }
2431
2432
    // IndexOfAny strings
2433
    //-----------------------------------------------------------------------
2434
    /**
2435
     * <p>Find the first index of any of a set of potential substrings.</p>
2436
     *
2437
     * <p>A {@code null} CharSequence will return {@code -1}.
2438
     * A {@code null} or zero length search array will return {@code -1}.
2439
     * A {@code null} search array entry will be ignored, but a search
2440
     * array containing "" will return {@code 0} if {@code str} is not
2441
     * null. This method uses {@link String#indexOf(String)} if possible.</p>
2442
     *
2443
     * <pre>
2444
     * StringUtils.indexOfAny(null, *)                     = -1
2445
     * StringUtils.indexOfAny(*, null)                     = -1
2446
     * StringUtils.indexOfAny(*, [])                       = -1
2447
     * StringUtils.indexOfAny("zzabyycdxx", ["ab","cd"])   = 2
2448
     * StringUtils.indexOfAny("zzabyycdxx", ["cd","ab"])   = 2
2449
     * StringUtils.indexOfAny("zzabyycdxx", ["mn","op"])   = -1
2450
     * StringUtils.indexOfAny("zzabyycdxx", ["zab","aby"]) = 1
2451
     * StringUtils.indexOfAny("zzabyycdxx", [""])          = 0
2452
     * StringUtils.indexOfAny("", [""])                    = 0
2453
     * StringUtils.indexOfAny("", ["a"])                   = -1
2454
     * </pre>
2455
     *
2456
     * @param str  the CharSequence to check, may be null
2457
     * @param searchStrs  the CharSequences to search for, may be null
2458
     * @return the first index of any of the searchStrs in str, -1 if no match
2459
     * @since 3.0 Changed signature from indexOfAny(String, String[]) to indexOfAny(CharSequence, CharSequence...)
2460
     */
2461
    public static int indexOfAny(final CharSequence str, final CharSequence... searchStrs) {
2462 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (str == null || searchStrs == null) {
2463 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2464
        }
2465
2466
        // String's can't have a MAX_VALUEth index.
2467
        int ret = Integer.MAX_VALUE;
2468
2469
        int tmp = 0;
2470 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
        for (final CharSequence search : searchStrs) {
2471 1 1. indexOfAny : negated conditional → KILLED
            if (search == null) {
2472
                continue;
2473
            }
2474
            tmp = CharSequenceUtils.indexOf(str, search, 0);
2475 1 1. indexOfAny : negated conditional → KILLED
            if (tmp == INDEX_NOT_FOUND) {
2476
                continue;
2477
            }
2478
2479 2 1. indexOfAny : changed conditional boundary → SURVIVED
2. indexOfAny : negated conditional → KILLED
            if (tmp < ret) {
2480
                ret = tmp;
2481
            }
2482
        }
2483
2484 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ret == Integer.MAX_VALUE ? INDEX_NOT_FOUND : ret;
2485
    }
2486
2487
    /**
2488
     * <p>Find the latest index of any of a set of potential substrings.</p>
2489
     *
2490
     * <p>A {@code null} CharSequence will return {@code -1}.
2491
     * A {@code null} search array will return {@code -1}.
2492
     * A {@code null} or zero length search array entry will be ignored,
2493
     * but a search array containing "" will return the length of {@code str}
2494
     * if {@code str} is not null. This method uses {@link String#indexOf(String)} if possible</p>
2495
     *
2496
     * <pre>
2497
     * StringUtils.lastIndexOfAny(null, *)                   = -1
2498
     * StringUtils.lastIndexOfAny(*, null)                   = -1
2499
     * StringUtils.lastIndexOfAny(*, [])                     = -1
2500
     * StringUtils.lastIndexOfAny(*, [null])                 = -1
2501
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["ab","cd"]) = 6
2502
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["cd","ab"]) = 6
2503
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn","op"]) = -1
2504
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn","op"]) = -1
2505
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn",""])   = 10
2506
     * </pre>
2507
     *
2508
     * @param str  the CharSequence to check, may be null
2509
     * @param searchStrs  the CharSequences to search for, may be null
2510
     * @return the last index of any of the CharSequences, -1 if no match
2511
     * @since 3.0 Changed signature from lastIndexOfAny(String, String[]) to lastIndexOfAny(CharSequence, CharSequence)
2512
     */
2513
    public static int lastIndexOfAny(final CharSequence str, final CharSequence... searchStrs) {
2514 2 1. lastIndexOfAny : negated conditional → KILLED
2. lastIndexOfAny : negated conditional → KILLED
        if (str == null || searchStrs == null) {
2515 1 1. lastIndexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2516
        }
2517
        int ret = INDEX_NOT_FOUND;
2518
        int tmp = 0;
2519 3 1. lastIndexOfAny : changed conditional boundary → KILLED
2. lastIndexOfAny : Changed increment from 1 to -1 → KILLED
3. lastIndexOfAny : negated conditional → KILLED
        for (final CharSequence search : searchStrs) {
2520 1 1. lastIndexOfAny : negated conditional → KILLED
            if (search == null) {
2521
                continue;
2522
            }
2523
            tmp = CharSequenceUtils.lastIndexOf(str, search, str.length());
2524 2 1. lastIndexOfAny : changed conditional boundary → SURVIVED
2. lastIndexOfAny : negated conditional → KILLED
            if (tmp > ret) {
2525
                ret = tmp;
2526
            }
2527
        }
2528 1 1. lastIndexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ret;
2529
    }
2530
2531
    // Substring
2532
    //-----------------------------------------------------------------------
2533
    /**
2534
     * <p>Gets a substring from the specified String avoiding exceptions.</p>
2535
     *
2536
     * <p>A negative start position can be used to start {@code n}
2537
     * characters from the end of the String.</p>
2538
     *
2539
     * <p>A {@code null} String will return {@code null}.
2540
     * An empty ("") String will return "".</p>
2541
     *
2542
     * <pre>
2543
     * StringUtils.substring(null, *)   = null
2544
     * StringUtils.substring("", *)     = ""
2545
     * StringUtils.substring("abc", 0)  = "abc"
2546
     * StringUtils.substring("abc", 2)  = "c"
2547
     * StringUtils.substring("abc", 4)  = ""
2548
     * StringUtils.substring("abc", -2) = "bc"
2549
     * StringUtils.substring("abc", -4) = "abc"
2550
     * </pre>
2551
     *
2552
     * @param str  the String to get the substring from, may be null
2553
     * @param start  the position to start from, negative means
2554
     *  count back from the end of the String by this many characters
2555
     * @return substring from start position, {@code null} if null String input
2556
     */
2557
    public static String substring(final String str, int start) {
2558 1 1. substring : negated conditional → KILLED
        if (str == null) {
2559 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2560
        }
2561
2562
        // handle negatives, which means last n characters
2563 2 1. substring : changed conditional boundary → KILLED
2. substring : negated conditional → KILLED
        if (start < 0) {
2564 1 1. substring : Replaced integer addition with subtraction → KILLED
            start = str.length() + start; // remember start is negative
2565
        }
2566
2567 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start < 0) {
2568
            start = 0;
2569
        }
2570 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start > str.length()) {
2571 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2572
        }
2573
2574 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start);
2575
    }
2576
2577
    /**
2578
     * <p>Gets a substring from the specified String avoiding exceptions.</p>
2579
     *
2580
     * <p>A negative start position can be used to start/end {@code n}
2581
     * characters from the end of the String.</p>
2582
     *
2583
     * <p>The returned substring starts with the character in the {@code start}
2584
     * position and ends before the {@code end} position. All position counting is
2585
     * zero-based -- i.e., to start at the beginning of the string use
2586
     * {@code start = 0}. Negative start and end positions can be used to
2587
     * specify offsets relative to the end of the String.</p>
2588
     *
2589
     * <p>If {@code start} is not strictly to the left of {@code end}, ""
2590
     * is returned.</p>
2591
     *
2592
     * <pre>
2593
     * StringUtils.substring(null, *, *)    = null
2594
     * StringUtils.substring("", * ,  *)    = "";
2595
     * StringUtils.substring("abc", 0, 2)   = "ab"
2596
     * StringUtils.substring("abc", 2, 0)   = ""
2597
     * StringUtils.substring("abc", 2, 4)   = "c"
2598
     * StringUtils.substring("abc", 4, 6)   = ""
2599
     * StringUtils.substring("abc", 2, 2)   = ""
2600
     * StringUtils.substring("abc", -2, -1) = "b"
2601
     * StringUtils.substring("abc", -4, 2)  = "ab"
2602
     * </pre>
2603
     *
2604
     * @param str  the String to get the substring from, may be null
2605
     * @param start  the position to start from, negative means
2606
     *  count back from the end of the String by this many characters
2607
     * @param end  the position to end at (exclusive), negative means
2608
     *  count back from the end of the String by this many characters
2609
     * @return substring from start position to end position,
2610
     *  {@code null} if null String input
2611
     */
2612
    public static String substring(final String str, int start, int end) {
2613 1 1. substring : negated conditional → KILLED
        if (str == null) {
2614 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2615
        }
2616
2617
        // handle negatives
2618 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end < 0) {
2619 1 1. substring : Replaced integer addition with subtraction → KILLED
            end = str.length() + end; // remember end is negative
2620
        }
2621 2 1. substring : changed conditional boundary → KILLED
2. substring : negated conditional → KILLED
        if (start < 0) {
2622 1 1. substring : Replaced integer addition with subtraction → KILLED
            start = str.length() + start; // remember start is negative
2623
        }
2624
2625
        // check length next
2626 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end > str.length()) {
2627
            end = str.length();
2628
        }
2629
2630
        // if start is greater than end, return ""
2631 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start > end) {
2632 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2633
        }
2634
2635 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start < 0) {
2636
            start = 0;
2637
        }
2638 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end < 0) {
2639
            end = 0;
2640
        }
2641
2642 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start, end);
2643
    }
2644
2645
    // Left/Right/Mid
2646
    //-----------------------------------------------------------------------
2647
    /**
2648
     * <p>Gets the leftmost {@code len} characters of a String.</p>
2649
     *
2650
     * <p>If {@code len} characters are not available, or the
2651
     * String is {@code null}, the String will be returned without
2652
     * an exception. An empty String is returned if len is negative.</p>
2653
     *
2654
     * <pre>
2655
     * StringUtils.left(null, *)    = null
2656
     * StringUtils.left(*, -ve)     = ""
2657
     * StringUtils.left("", *)      = ""
2658
     * StringUtils.left("abc", 0)   = ""
2659
     * StringUtils.left("abc", 2)   = "ab"
2660
     * StringUtils.left("abc", 4)   = "abc"
2661
     * </pre>
2662
     *
2663
     * @param str  the String to get the leftmost characters from, may be null
2664
     * @param len  the length of the required String
2665
     * @return the leftmost characters, {@code null} if null String input
2666
     */
2667
    public static String left(final String str, final int len) {
2668 1 1. left : negated conditional → KILLED
        if (str == null) {
2669 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2670
        }
2671 2 1. left : changed conditional boundary → SURVIVED
2. left : negated conditional → KILLED
        if (len < 0) {
2672 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2673
        }
2674 2 1. left : changed conditional boundary → SURVIVED
2. left : negated conditional → KILLED
        if (str.length() <= len) {
2675 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2676
        }
2677 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, len);
2678
    }
2679
2680
    /**
2681
     * <p>Gets the rightmost {@code len} characters of a String.</p>
2682
     *
2683
     * <p>If {@code len} characters are not available, or the String
2684
     * is {@code null}, the String will be returned without an
2685
     * an exception. An empty String is returned if len is negative.</p>
2686
     *
2687
     * <pre>
2688
     * StringUtils.right(null, *)    = null
2689
     * StringUtils.right(*, -ve)     = ""
2690
     * StringUtils.right("", *)      = ""
2691
     * StringUtils.right("abc", 0)   = ""
2692
     * StringUtils.right("abc", 2)   = "bc"
2693
     * StringUtils.right("abc", 4)   = "abc"
2694
     * </pre>
2695
     *
2696
     * @param str  the String to get the rightmost characters from, may be null
2697
     * @param len  the length of the required String
2698
     * @return the rightmost characters, {@code null} if null String input
2699
     */
2700
    public static String right(final String str, final int len) {
2701 1 1. right : negated conditional → KILLED
        if (str == null) {
2702 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2703
        }
2704 2 1. right : changed conditional boundary → SURVIVED
2. right : negated conditional → KILLED
        if (len < 0) {
2705 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2706
        }
2707 2 1. right : changed conditional boundary → SURVIVED
2. right : negated conditional → KILLED
        if (str.length() <= len) {
2708 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2709
        }
2710 2 1. right : Replaced integer subtraction with addition → KILLED
2. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(str.length() - len);
2711
    }
2712
2713
    /**
2714
     * <p>Gets {@code len} characters from the middle of a String.</p>
2715
     *
2716
     * <p>If {@code len} characters are not available, the remainder
2717
     * of the String will be returned without an exception. If the
2718
     * String is {@code null}, {@code null} will be returned.
2719
     * An empty String is returned if len is negative or exceeds the
2720
     * length of {@code str}.</p>
2721
     *
2722
     * <pre>
2723
     * StringUtils.mid(null, *, *)    = null
2724
     * StringUtils.mid(*, *, -ve)     = ""
2725
     * StringUtils.mid("", 0, *)      = ""
2726
     * StringUtils.mid("abc", 0, 2)   = "ab"
2727
     * StringUtils.mid("abc", 0, 4)   = "abc"
2728
     * StringUtils.mid("abc", 2, 4)   = "c"
2729
     * StringUtils.mid("abc", 4, 2)   = ""
2730
     * StringUtils.mid("abc", -2, 2)  = "ab"
2731
     * </pre>
2732
     *
2733
     * @param str  the String to get the characters from, may be null
2734
     * @param pos  the position to start from, negative treated as zero
2735
     * @param len  the length of the required String
2736
     * @return the middle characters, {@code null} if null String input
2737
     */
2738
    public static String mid(final String str, int pos, final int len) {
2739 1 1. mid : negated conditional → KILLED
        if (str == null) {
2740 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2741
        }
2742 4 1. mid : changed conditional boundary → SURVIVED
2. mid : changed conditional boundary → SURVIVED
3. mid : negated conditional → KILLED
4. mid : negated conditional → KILLED
        if (len < 0 || pos > str.length()) {
2743 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2744
        }
2745 2 1. mid : changed conditional boundary → SURVIVED
2. mid : negated conditional → KILLED
        if (pos < 0) {
2746
            pos = 0;
2747
        }
2748 3 1. mid : changed conditional boundary → SURVIVED
2. mid : Replaced integer addition with subtraction → KILLED
3. mid : negated conditional → KILLED
        if (str.length() <= pos + len) {
2749 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(pos);
2750
        }
2751 2 1. mid : Replaced integer addition with subtraction → KILLED
2. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos, pos + len);
2752
    }
2753
2754
    // SubStringAfter/SubStringBefore
2755
    //-----------------------------------------------------------------------
2756
    /**
2757
     * <p>Gets the substring before the first occurrence of a separator.
2758
     * The separator is not returned.</p>
2759
     *
2760
     * <p>A {@code null} string input will return {@code null}.
2761
     * An empty ("") string input will return the empty string.
2762
     * A {@code null} separator will return the input string.</p>
2763
     *
2764
     * <p>If nothing is found, the string input is returned.</p>
2765
     *
2766
     * <pre>
2767
     * StringUtils.substringBefore(null, *)      = null
2768
     * StringUtils.substringBefore("", *)        = ""
2769
     * StringUtils.substringBefore("abc", "a")   = ""
2770
     * StringUtils.substringBefore("abcba", "b") = "a"
2771
     * StringUtils.substringBefore("abc", "c")   = "ab"
2772
     * StringUtils.substringBefore("abc", "d")   = "abc"
2773
     * StringUtils.substringBefore("abc", "")    = ""
2774
     * StringUtils.substringBefore("abc", null)  = "abc"
2775
     * </pre>
2776
     *
2777
     * @param str  the String to get a substring from, may be null
2778
     * @param separator  the String to search for, may be null
2779
     * @return the substring before the first occurrence of the separator,
2780
     *  {@code null} if null String input
2781
     * @since 2.0
2782
     */
2783
    public static String substringBefore(final String str, final String separator) {
2784 2 1. substringBefore : negated conditional → KILLED
2. substringBefore : negated conditional → KILLED
        if (isEmpty(str) || separator == null) {
2785 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2786
        }
2787 1 1. substringBefore : negated conditional → KILLED
        if (separator.isEmpty()) {
2788 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2789
        }
2790
        final int pos = str.indexOf(separator);
2791 1 1. substringBefore : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2792 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2793
        }
2794 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, pos);
2795
    }
2796
2797
    /**
2798
     * <p>Gets the substring after the first occurrence of a separator.
2799
     * The separator is not returned.</p>
2800
     *
2801
     * <p>A {@code null} string input will return {@code null}.
2802
     * An empty ("") string input will return the empty string.
2803
     * A {@code null} separator will return the empty string if the
2804
     * input string is not {@code null}.</p>
2805
     *
2806
     * <p>If nothing is found, the empty string is returned.</p>
2807
     *
2808
     * <pre>
2809
     * StringUtils.substringAfter(null, *)      = null
2810
     * StringUtils.substringAfter("", *)        = ""
2811
     * StringUtils.substringAfter(*, null)      = ""
2812
     * StringUtils.substringAfter("abc", "a")   = "bc"
2813
     * StringUtils.substringAfter("abcba", "b") = "cba"
2814
     * StringUtils.substringAfter("abc", "c")   = ""
2815
     * StringUtils.substringAfter("abc", "d")   = ""
2816
     * StringUtils.substringAfter("abc", "")    = "abc"
2817
     * </pre>
2818
     *
2819
     * @param str  the String to get a substring from, may be null
2820
     * @param separator  the String to search for, may be null
2821
     * @return the substring after the first occurrence of the separator,
2822
     *  {@code null} if null String input
2823
     * @since 2.0
2824
     */
2825
    public static String substringAfter(final String str, final String separator) {
2826 1 1. substringAfter : negated conditional → KILLED
        if (isEmpty(str)) {
2827 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2828
        }
2829 1 1. substringAfter : negated conditional → KILLED
        if (separator == null) {
2830 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2831
        }
2832
        final int pos = str.indexOf(separator);
2833 1 1. substringAfter : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2834 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2835
        }
2836 2 1. substringAfter : Replaced integer addition with subtraction → KILLED
2. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos + separator.length());
2837
    }
2838
2839
    /**
2840
     * <p>Gets the substring before the last occurrence of a separator.
2841
     * The separator is not returned.</p>
2842
     *
2843
     * <p>A {@code null} string input will return {@code null}.
2844
     * An empty ("") string input will return the empty string.
2845
     * An empty or {@code null} separator will return the input string.</p>
2846
     *
2847
     * <p>If nothing is found, the string input is returned.</p>
2848
     *
2849
     * <pre>
2850
     * StringUtils.substringBeforeLast(null, *)      = null
2851
     * StringUtils.substringBeforeLast("", *)        = ""
2852
     * StringUtils.substringBeforeLast("abcba", "b") = "abc"
2853
     * StringUtils.substringBeforeLast("abc", "c")   = "ab"
2854
     * StringUtils.substringBeforeLast("a", "a")     = ""
2855
     * StringUtils.substringBeforeLast("a", "z")     = "a"
2856
     * StringUtils.substringBeforeLast("a", null)    = "a"
2857
     * StringUtils.substringBeforeLast("a", "")      = "a"
2858
     * </pre>
2859
     *
2860
     * @param str  the String to get a substring from, may be null
2861
     * @param separator  the String to search for, may be null
2862
     * @return the substring before the last occurrence of the separator,
2863
     *  {@code null} if null String input
2864
     * @since 2.0
2865
     */
2866
    public static String substringBeforeLast(final String str, final String separator) {
2867 2 1. substringBeforeLast : negated conditional → KILLED
2. substringBeforeLast : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(separator)) {
2868 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2869
        }
2870
        final int pos = str.lastIndexOf(separator);
2871 1 1. substringBeforeLast : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2872 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2873
        }
2874 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, pos);
2875
    }
2876
2877
    /**
2878
     * <p>Gets the substring after the last occurrence of a separator.
2879
     * The separator is not returned.</p>
2880
     *
2881
     * <p>A {@code null} string input will return {@code null}.
2882
     * An empty ("") string input will return the empty string.
2883
     * An empty or {@code null} separator will return the empty string if
2884
     * the input string is not {@code null}.</p>
2885
     *
2886
     * <p>If nothing is found, the empty string is returned.</p>
2887
     *
2888
     * <pre>
2889
     * StringUtils.substringAfterLast(null, *)      = null
2890
     * StringUtils.substringAfterLast("", *)        = ""
2891
     * StringUtils.substringAfterLast(*, "")        = ""
2892
     * StringUtils.substringAfterLast(*, null)      = ""
2893
     * StringUtils.substringAfterLast("abc", "a")   = "bc"
2894
     * StringUtils.substringAfterLast("abcba", "b") = "a"
2895
     * StringUtils.substringAfterLast("abc", "c")   = ""
2896
     * StringUtils.substringAfterLast("a", "a")     = ""
2897
     * StringUtils.substringAfterLast("a", "z")     = ""
2898
     * </pre>
2899
     *
2900
     * @param str  the String to get a substring from, may be null
2901
     * @param separator  the String to search for, may be null
2902
     * @return the substring after the last occurrence of the separator,
2903
     *  {@code null} if null String input
2904
     * @since 2.0
2905
     */
2906
    public static String substringAfterLast(final String str, final String separator) {
2907 1 1. substringAfterLast : negated conditional → KILLED
        if (isEmpty(str)) {
2908 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2909
        }
2910 1 1. substringAfterLast : negated conditional → KILLED
        if (isEmpty(separator)) {
2911 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2912
        }
2913
        final int pos = str.lastIndexOf(separator);
2914 3 1. substringAfterLast : Replaced integer subtraction with addition → SURVIVED
2. substringAfterLast : negated conditional → KILLED
3. substringAfterLast : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND || pos == str.length() - separator.length()) {
2915 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2916
        }
2917 2 1. substringAfterLast : Replaced integer addition with subtraction → KILLED
2. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos + separator.length());
2918
    }
2919
2920
    // Substring between
2921
    //-----------------------------------------------------------------------
2922
    /**
2923
     * <p>Gets the String that is nested in between two instances of the
2924
     * same String.</p>
2925
     *
2926
     * <p>A {@code null} input String returns {@code null}.
2927
     * A {@code null} tag returns {@code null}.</p>
2928
     *
2929
     * <pre>
2930
     * StringUtils.substringBetween(null, *)            = null
2931
     * StringUtils.substringBetween("", "")             = ""
2932
     * StringUtils.substringBetween("", "tag")          = null
2933
     * StringUtils.substringBetween("tagabctag", null)  = null
2934
     * StringUtils.substringBetween("tagabctag", "")    = ""
2935
     * StringUtils.substringBetween("tagabctag", "tag") = "abc"
2936
     * </pre>
2937
     *
2938
     * @param str  the String containing the substring, may be null
2939
     * @param tag  the String before and after the substring, may be null
2940
     * @return the substring, {@code null} if no match
2941
     * @since 2.0
2942
     */
2943
    public static String substringBetween(final String str, final String tag) {
2944 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return substringBetween(str, tag, tag);
2945
    }
2946
2947
    /**
2948
     * <p>Gets the String that is nested in between two Strings.
2949
     * Only the first match is returned.</p>
2950
     *
2951
     * <p>A {@code null} input String returns {@code null}.
2952
     * A {@code null} open/close returns {@code null} (no match).
2953
     * An empty ("") open and close returns an empty string.</p>
2954
     *
2955
     * <pre>
2956
     * StringUtils.substringBetween("wx[b]yz", "[", "]") = "b"
2957
     * StringUtils.substringBetween(null, *, *)          = null
2958
     * StringUtils.substringBetween(*, null, *)          = null
2959
     * StringUtils.substringBetween(*, *, null)          = null
2960
     * StringUtils.substringBetween("", "", "")          = ""
2961
     * StringUtils.substringBetween("", "", "]")         = null
2962
     * StringUtils.substringBetween("", "[", "]")        = null
2963
     * StringUtils.substringBetween("yabcz", "", "")     = ""
2964
     * StringUtils.substringBetween("yabcz", "y", "z")   = "abc"
2965
     * StringUtils.substringBetween("yabczyabcz", "y", "z")   = "abc"
2966
     * </pre>
2967
     *
2968
     * @param str  the String containing the substring, may be null
2969
     * @param open  the String before the substring, may be null
2970
     * @param close  the String after the substring, may be null
2971
     * @return the substring, {@code null} if no match
2972
     * @since 2.0
2973
     */
2974
    public static String substringBetween(final String str, final String open, final String close) {
2975 3 1. substringBetween : negated conditional → KILLED
2. substringBetween : negated conditional → KILLED
3. substringBetween : negated conditional → KILLED
        if (str == null || open == null || close == null) {
2976 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2977
        }
2978
        final int start = str.indexOf(open);
2979 1 1. substringBetween : negated conditional → KILLED
        if (start != INDEX_NOT_FOUND) {
2980 1 1. substringBetween : Replaced integer addition with subtraction → KILLED
            final int end = str.indexOf(close, start + open.length());
2981 1 1. substringBetween : negated conditional → KILLED
            if (end != INDEX_NOT_FOUND) {
2982 2 1. substringBetween : Replaced integer addition with subtraction → KILLED
2. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(start + open.length(), end);
2983
            }
2984
        }
2985 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return null;
2986
    }
2987
2988
    /**
2989
     * <p>Searches a String for substrings delimited by a start and end tag,
2990
     * returning all matching substrings in an array.</p>
2991
     *
2992
     * <p>A {@code null} input String returns {@code null}.
2993
     * A {@code null} open/close returns {@code null} (no match).
2994
     * An empty ("") open/close returns {@code null} (no match).</p>
2995
     *
2996
     * <pre>
2997
     * StringUtils.substringsBetween("[a][b][c]", "[", "]") = ["a","b","c"]
2998
     * StringUtils.substringsBetween(null, *, *)            = null
2999
     * StringUtils.substringsBetween(*, null, *)            = null
3000
     * StringUtils.substringsBetween(*, *, null)            = null
3001
     * StringUtils.substringsBetween("", "[", "]")          = []
3002
     * </pre>
3003
     *
3004
     * @param str  the String containing the substrings, null returns null, empty returns empty
3005
     * @param open  the String identifying the start of the substring, empty returns null
3006
     * @param close  the String identifying the end of the substring, empty returns null
3007
     * @return a String Array of substrings, or {@code null} if no match
3008
     * @since 2.3
3009
     */
3010
    public static String[] substringsBetween(final String str, final String open, final String close) {
3011 3 1. substringsBetween : negated conditional → KILLED
2. substringsBetween : negated conditional → KILLED
3. substringsBetween : negated conditional → KILLED
        if (str == null || isEmpty(open) || isEmpty(close)) {
3012 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3013
        }
3014
        final int strLen = str.length();
3015 1 1. substringsBetween : negated conditional → KILLED
        if (strLen == 0) {
3016 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3017
        }
3018
        final int closeLen = close.length();
3019
        final int openLen = open.length();
3020
        final List<String> list = new ArrayList<>();
3021
        int pos = 0;
3022 3 1. substringsBetween : changed conditional boundary → SURVIVED
2. substringsBetween : Replaced integer subtraction with addition → SURVIVED
3. substringsBetween : negated conditional → KILLED
        while (pos < strLen - closeLen) {
3023
            int start = str.indexOf(open, pos);
3024 2 1. substringsBetween : changed conditional boundary → KILLED
2. substringsBetween : negated conditional → KILLED
            if (start < 0) {
3025
                break;
3026
            }
3027 1 1. substringsBetween : Replaced integer addition with subtraction → KILLED
            start += openLen;
3028
            final int end = str.indexOf(close, start);
3029 2 1. substringsBetween : changed conditional boundary → SURVIVED
2. substringsBetween : negated conditional → KILLED
            if (end < 0) {
3030
                break;
3031
            }
3032
            list.add(str.substring(start, end));
3033 1 1. substringsBetween : Replaced integer addition with subtraction → KILLED
            pos = end + closeLen;
3034
        }
3035 1 1. substringsBetween : negated conditional → KILLED
        if (list.isEmpty()) {
3036 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3037
        }
3038 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String [list.size()]);
3039
    }
3040
3041
    // Nested extraction
3042
    //-----------------------------------------------------------------------
3043
3044
    // Splitting
3045
    //-----------------------------------------------------------------------
3046
    /**
3047
     * <p>Splits the provided text into an array, using whitespace as the
3048
     * separator.
3049
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3050
     *
3051
     * <p>The separator is not included in the returned String array.
3052
     * Adjacent separators are treated as one separator.
3053
     * For more control over the split use the StrTokenizer class.</p>
3054
     *
3055
     * <p>A {@code null} input String returns {@code null}.</p>
3056
     *
3057
     * <pre>
3058
     * StringUtils.split(null)       = null
3059
     * StringUtils.split("")         = []
3060
     * StringUtils.split("abc def")  = ["abc", "def"]
3061
     * StringUtils.split("abc  def") = ["abc", "def"]
3062
     * StringUtils.split(" abc ")    = ["abc"]
3063
     * </pre>
3064
     *
3065
     * @param str  the String to parse, may be null
3066
     * @return an array of parsed Strings, {@code null} if null String input
3067
     */
3068
    public static String[] split(final String str) {
3069 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return split(str, null, -1);
3070
    }
3071
3072
    /**
3073
     * <p>Splits the provided text into an array, separator specified.
3074
     * This is an alternative to using StringTokenizer.</p>
3075
     *
3076
     * <p>The separator is not included in the returned String array.
3077
     * Adjacent separators are treated as one separator.
3078
     * For more control over the split use the StrTokenizer class.</p>
3079
     *
3080
     * <p>A {@code null} input String returns {@code null}.</p>
3081
     *
3082
     * <pre>
3083
     * StringUtils.split(null, *)         = null
3084
     * StringUtils.split("", *)           = []
3085
     * StringUtils.split("a.b.c", '.')    = ["a", "b", "c"]
3086
     * StringUtils.split("a..b.c", '.')   = ["a", "b", "c"]
3087
     * StringUtils.split("a:b:c", '.')    = ["a:b:c"]
3088
     * StringUtils.split("a b c", ' ')    = ["a", "b", "c"]
3089
     * </pre>
3090
     *
3091
     * @param str  the String to parse, may be null
3092
     * @param separatorChar  the character used as the delimiter
3093
     * @return an array of parsed Strings, {@code null} if null String input
3094
     * @since 2.0
3095
     */
3096
    public static String[] split(final String str, final char separatorChar) {
3097 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChar, false);
3098
    }
3099
3100
    /**
3101
     * <p>Splits the provided text into an array, separators specified.
3102
     * This is an alternative to using StringTokenizer.</p>
3103
     *
3104
     * <p>The separator is not included in the returned String array.
3105
     * Adjacent separators are treated as one separator.
3106
     * For more control over the split use the StrTokenizer class.</p>
3107
     *
3108
     * <p>A {@code null} input String returns {@code null}.
3109
     * A {@code null} separatorChars splits on whitespace.</p>
3110
     *
3111
     * <pre>
3112
     * StringUtils.split(null, *)         = null
3113
     * StringUtils.split("", *)           = []
3114
     * StringUtils.split("abc def", null) = ["abc", "def"]
3115
     * StringUtils.split("abc def", " ")  = ["abc", "def"]
3116
     * StringUtils.split("abc  def", " ") = ["abc", "def"]
3117
     * StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]
3118
     * </pre>
3119
     *
3120
     * @param str  the String to parse, may be null
3121
     * @param separatorChars  the characters used as the delimiters,
3122
     *  {@code null} splits on whitespace
3123
     * @return an array of parsed Strings, {@code null} if null String input
3124
     */
3125
    public static String[] split(final String str, final String separatorChars) {
3126 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, -1, false);
3127
    }
3128
3129
    /**
3130
     * <p>Splits the provided text into an array with a maximum length,
3131
     * separators specified.</p>
3132
     *
3133
     * <p>The separator is not included in the returned String array.
3134
     * Adjacent separators are treated as one separator.</p>
3135
     *
3136
     * <p>A {@code null} input String returns {@code null}.
3137
     * A {@code null} separatorChars splits on whitespace.</p>
3138
     *
3139
     * <p>If more than {@code max} delimited substrings are found, the last
3140
     * returned string includes all characters after the first {@code max - 1}
3141
     * returned strings (including separator characters).</p>
3142
     *
3143
     * <pre>
3144
     * StringUtils.split(null, *, *)            = null
3145
     * StringUtils.split("", *, *)              = []
3146
     * StringUtils.split("ab cd ef", null, 0)   = ["ab", "cd", "ef"]
3147
     * StringUtils.split("ab   cd ef", null, 0) = ["ab", "cd", "ef"]
3148
     * StringUtils.split("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
3149
     * StringUtils.split("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
3150
     * </pre>
3151
     *
3152
     * @param str  the String to parse, may be null
3153
     * @param separatorChars  the characters used as the delimiters,
3154
     *  {@code null} splits on whitespace
3155
     * @param max  the maximum number of elements to include in the
3156
     *  array. A zero or negative value implies no limit
3157
     * @return an array of parsed Strings, {@code null} if null String input
3158
     */
3159
    public static String[] split(final String str, final String separatorChars, final int max) {
3160 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, max, false);
3161
    }
3162
3163
    /**
3164
     * <p>Splits the provided text into an array, separator string specified.</p>
3165
     *
3166
     * <p>The separator(s) will not be included in the returned String array.
3167
     * Adjacent separators are treated as one separator.</p>
3168
     *
3169
     * <p>A {@code null} input String returns {@code null}.
3170
     * A {@code null} separator splits on whitespace.</p>
3171
     *
3172
     * <pre>
3173
     * StringUtils.splitByWholeSeparator(null, *)               = null
3174
     * StringUtils.splitByWholeSeparator("", *)                 = []
3175
     * StringUtils.splitByWholeSeparator("ab de fg", null)      = ["ab", "de", "fg"]
3176
     * StringUtils.splitByWholeSeparator("ab   de fg", null)    = ["ab", "de", "fg"]
3177
     * StringUtils.splitByWholeSeparator("ab:cd:ef", ":")       = ["ab", "cd", "ef"]
3178
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
3179
     * </pre>
3180
     *
3181
     * @param str  the String to parse, may be null
3182
     * @param separator  String containing the String to be used as a delimiter,
3183
     *  {@code null} splits on whitespace
3184
     * @return an array of parsed Strings, {@code null} if null String was input
3185
     */
3186
    public static String[] splitByWholeSeparator(final String str, final String separator) {
3187 1 1. splitByWholeSeparator : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker( str, separator, -1, false ) ;
3188
    }
3189
3190
    /**
3191
     * <p>Splits the provided text into an array, separator string specified.
3192
     * Returns a maximum of {@code max} substrings.</p>
3193
     *
3194
     * <p>The separator(s) will not be included in the returned String array.
3195
     * Adjacent separators are treated as one separator.</p>
3196
     *
3197
     * <p>A {@code null} input String returns {@code null}.
3198
     * A {@code null} separator splits on whitespace.</p>
3199
     *
3200
     * <pre>
3201
     * StringUtils.splitByWholeSeparator(null, *, *)               = null
3202
     * StringUtils.splitByWholeSeparator("", *, *)                 = []
3203
     * StringUtils.splitByWholeSeparator("ab de fg", null, 0)      = ["ab", "de", "fg"]
3204
     * StringUtils.splitByWholeSeparator("ab   de fg", null, 0)    = ["ab", "de", "fg"]
3205
     * StringUtils.splitByWholeSeparator("ab:cd:ef", ":", 2)       = ["ab", "cd:ef"]
3206
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 5) = ["ab", "cd", "ef"]
3207
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 2) = ["ab", "cd-!-ef"]
3208
     * </pre>
3209
     *
3210
     * @param str  the String to parse, may be null
3211
     * @param separator  String containing the String to be used as a delimiter,
3212
     *  {@code null} splits on whitespace
3213
     * @param max  the maximum number of elements to include in the returned
3214
     *  array. A zero or negative value implies no limit.
3215
     * @return an array of parsed Strings, {@code null} if null String was input
3216
     */
3217
    public static String[] splitByWholeSeparator( final String str, final String separator, final int max) {
3218 1 1. splitByWholeSeparator : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker(str, separator, max, false);
3219
    }
3220
3221
    /**
3222
     * <p>Splits the provided text into an array, separator string specified. </p>
3223
     *
3224
     * <p>The separator is not included in the returned String array.
3225
     * Adjacent separators are treated as separators for empty tokens.
3226
     * For more control over the split use the StrTokenizer class.</p>
3227
     *
3228
     * <p>A {@code null} input String returns {@code null}.
3229
     * A {@code null} separator splits on whitespace.</p>
3230
     *
3231
     * <pre>
3232
     * StringUtils.splitByWholeSeparatorPreserveAllTokens(null, *)               = null
3233
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("", *)                 = []
3234
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null)      = ["ab", "de", "fg"]
3235
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab   de fg", null)    = ["ab", "", "", "de", "fg"]
3236
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab:cd:ef", ":")       = ["ab", "cd", "ef"]
3237
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
3238
     * </pre>
3239
     *
3240
     * @param str  the String to parse, may be null
3241
     * @param separator  String containing the String to be used as a delimiter,
3242
     *  {@code null} splits on whitespace
3243
     * @return an array of parsed Strings, {@code null} if null String was input
3244
     * @since 2.4
3245
     */
3246
    public static String[] splitByWholeSeparatorPreserveAllTokens(final String str, final String separator) {
3247 1 1. splitByWholeSeparatorPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker(str, separator, -1, true);
3248
    }
3249
3250
    /**
3251
     * <p>Splits the provided text into an array, separator string specified.
3252
     * Returns a maximum of {@code max} substrings.</p>
3253
     *
3254
     * <p>The separator is not included in the returned String array.
3255
     * Adjacent separators are treated as separators for empty tokens.
3256
     * For more control over the split use the StrTokenizer class.</p>
3257
     *
3258
     * <p>A {@code null} input String returns {@code null}.
3259
     * A {@code null} separator splits on whitespace.</p>
3260
     *
3261
     * <pre>
3262
     * StringUtils.splitByWholeSeparatorPreserveAllTokens(null, *, *)               = null
3263
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("", *, *)                 = []
3264
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null, 0)      = ["ab", "de", "fg"]
3265
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab   de fg", null, 0)    = ["ab", "", "", "de", "fg"]
3266
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab:cd:ef", ":", 2)       = ["ab", "cd:ef"]
3267
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-", 5) = ["ab", "cd", "ef"]
3268
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-", 2) = ["ab", "cd-!-ef"]
3269
     * </pre>
3270
     *
3271
     * @param str  the String to parse, may be null
3272
     * @param separator  String containing the String to be used as a delimiter,
3273
     *  {@code null} splits on whitespace
3274
     * @param max  the maximum number of elements to include in the returned
3275
     *  array. A zero or negative value implies no limit.
3276
     * @return an array of parsed Strings, {@code null} if null String was input
3277
     * @since 2.4
3278
     */
3279
    public static String[] splitByWholeSeparatorPreserveAllTokens(final String str, final String separator, final int max) {
3280 1 1. splitByWholeSeparatorPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker(str, separator, max, true);
3281
    }
3282
3283
    /**
3284
     * Performs the logic for the {@code splitByWholeSeparatorPreserveAllTokens} methods.
3285
     *
3286
     * @param str  the String to parse, may be {@code null}
3287
     * @param separator  String containing the String to be used as a delimiter,
3288
     *  {@code null} splits on whitespace
3289
     * @param max  the maximum number of elements to include in the returned
3290
     *  array. A zero or negative value implies no limit.
3291
     * @param preserveAllTokens if {@code true}, adjacent separators are
3292
     * treated as empty token separators; if {@code false}, adjacent
3293
     * separators are treated as one separator.
3294
     * @return an array of parsed Strings, {@code null} if null String input
3295
     * @since 2.4
3296
     */
3297
    private static String[] splitByWholeSeparatorWorker(
3298
            final String str, final String separator, final int max, final boolean preserveAllTokens) {
3299 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (str == null) {
3300 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3301
        }
3302
3303
        final int len = str.length();
3304
3305 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (len == 0) {
3306 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3307
        }
3308
3309 2 1. splitByWholeSeparatorWorker : negated conditional → KILLED
2. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (separator == null || EMPTY.equals(separator)) {
3310
            // Split on whitespace.
3311 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return splitWorker(str, null, max, preserveAllTokens);
3312
        }
3313
3314
        final int separatorLength = separator.length();
3315
3316
        final ArrayList<String> substrings = new ArrayList<>();
3317
        int numberOfSubstrings = 0;
3318
        int beg = 0;
3319
        int end = 0;
3320 2 1. splitByWholeSeparatorWorker : changed conditional boundary → TIMED_OUT
2. splitByWholeSeparatorWorker : negated conditional → KILLED
        while (end < len) {
3321
            end = str.indexOf(separator, beg);
3322
3323 2 1. splitByWholeSeparatorWorker : changed conditional boundary → TIMED_OUT
2. splitByWholeSeparatorWorker : negated conditional → KILLED
            if (end > -1) {
3324 2 1. splitByWholeSeparatorWorker : changed conditional boundary → KILLED
2. splitByWholeSeparatorWorker : negated conditional → KILLED
                if (end > beg) {
3325 1 1. splitByWholeSeparatorWorker : Changed increment from 1 to -1 → KILLED
                    numberOfSubstrings += 1;
3326
3327 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                    if (numberOfSubstrings == max) {
3328
                        end = len;
3329
                        substrings.add(str.substring(beg));
3330
                    } else {
3331
                        // The following is OK, because String.substring( beg, end ) excludes
3332
                        // the character at the position 'end'.
3333
                        substrings.add(str.substring(beg, end));
3334
3335
                        // Set the starting point for the next search.
3336
                        // The following is equivalent to beg = end + (separatorLength - 1) + 1,
3337
                        // which is the right calculation:
3338 1 1. splitByWholeSeparatorWorker : Replaced integer addition with subtraction → KILLED
                        beg = end + separatorLength;
3339
                    }
3340
                } else {
3341
                    // We found a consecutive occurrence of the separator, so skip it.
3342 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                    if (preserveAllTokens) {
3343 1 1. splitByWholeSeparatorWorker : Changed increment from 1 to -1 → KILLED
                        numberOfSubstrings += 1;
3344 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                        if (numberOfSubstrings == max) {
3345
                            end = len;
3346
                            substrings.add(str.substring(beg));
3347
                        } else {
3348
                            substrings.add(EMPTY);
3349
                        }
3350
                    }
3351 1 1. splitByWholeSeparatorWorker : Replaced integer addition with subtraction → TIMED_OUT
                    beg = end + separatorLength;
3352
                }
3353
            } else {
3354
                // String.substring( beg ) goes from 'beg' to the end of the String.
3355
                substrings.add(str.substring(beg));
3356
                end = len;
3357
            }
3358
        }
3359
3360 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return substrings.toArray(new String[substrings.size()]);
3361
    }
3362
3363
    // -----------------------------------------------------------------------
3364
    /**
3365
     * <p>Splits the provided text into an array, using whitespace as the
3366
     * separator, preserving all tokens, including empty tokens created by
3367
     * adjacent separators. This is an alternative to using StringTokenizer.
3368
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3369
     *
3370
     * <p>The separator is not included in the returned String array.
3371
     * Adjacent separators are treated as separators for empty tokens.
3372
     * For more control over the split use the StrTokenizer class.</p>
3373
     *
3374
     * <p>A {@code null} input String returns {@code null}.</p>
3375
     *
3376
     * <pre>
3377
     * StringUtils.splitPreserveAllTokens(null)       = null
3378
     * StringUtils.splitPreserveAllTokens("")         = []
3379
     * StringUtils.splitPreserveAllTokens("abc def")  = ["abc", "def"]
3380
     * StringUtils.splitPreserveAllTokens("abc  def") = ["abc", "", "def"]
3381
     * StringUtils.splitPreserveAllTokens(" abc ")    = ["", "abc", ""]
3382
     * </pre>
3383
     *
3384
     * @param str  the String to parse, may be {@code null}
3385
     * @return an array of parsed Strings, {@code null} if null String input
3386
     * @since 2.1
3387
     */
3388
    public static String[] splitPreserveAllTokens(final String str) {
3389 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, null, -1, true);
3390
    }
3391
3392
    /**
3393
     * <p>Splits the provided text into an array, separator specified,
3394
     * preserving all tokens, including empty tokens created by adjacent
3395
     * separators. This is an alternative to using StringTokenizer.</p>
3396
     *
3397
     * <p>The separator is not included in the returned String array.
3398
     * Adjacent separators are treated as separators for empty tokens.
3399
     * For more control over the split use the StrTokenizer class.</p>
3400
     *
3401
     * <p>A {@code null} input String returns {@code null}.</p>
3402
     *
3403
     * <pre>
3404
     * StringUtils.splitPreserveAllTokens(null, *)         = null
3405
     * StringUtils.splitPreserveAllTokens("", *)           = []
3406
     * StringUtils.splitPreserveAllTokens("a.b.c", '.')    = ["a", "b", "c"]
3407
     * StringUtils.splitPreserveAllTokens("a..b.c", '.')   = ["a", "", "b", "c"]
3408
     * StringUtils.splitPreserveAllTokens("a:b:c", '.')    = ["a:b:c"]
3409
     * StringUtils.splitPreserveAllTokens("a\tb\nc", null) = ["a", "b", "c"]
3410
     * StringUtils.splitPreserveAllTokens("a b c", ' ')    = ["a", "b", "c"]
3411
     * StringUtils.splitPreserveAllTokens("a b c ", ' ')   = ["a", "b", "c", ""]
3412
     * StringUtils.splitPreserveAllTokens("a b c  ", ' ')   = ["a", "b", "c", "", ""]
3413
     * StringUtils.splitPreserveAllTokens(" a b c", ' ')   = ["", a", "b", "c"]
3414
     * StringUtils.splitPreserveAllTokens("  a b c", ' ')  = ["", "", a", "b", "c"]
3415
     * StringUtils.splitPreserveAllTokens(" a b c ", ' ')  = ["", a", "b", "c", ""]
3416
     * </pre>
3417
     *
3418
     * @param str  the String to parse, may be {@code null}
3419
     * @param separatorChar  the character used as the delimiter,
3420
     *  {@code null} splits on whitespace
3421
     * @return an array of parsed Strings, {@code null} if null String input
3422
     * @since 2.1
3423
     */
3424
    public static String[] splitPreserveAllTokens(final String str, final char separatorChar) {
3425 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChar, true);
3426
    }
3427
3428
    /**
3429
     * Performs the logic for the {@code split} and
3430
     * {@code splitPreserveAllTokens} methods that do not return a
3431
     * maximum array length.
3432
     *
3433
     * @param str  the String to parse, may be {@code null}
3434
     * @param separatorChar the separate character
3435
     * @param preserveAllTokens if {@code true}, adjacent separators are
3436
     * treated as empty token separators; if {@code false}, adjacent
3437
     * separators are treated as one separator.
3438
     * @return an array of parsed Strings, {@code null} if null String input
3439
     */
3440
    private static String[] splitWorker(final String str, final char separatorChar, final boolean preserveAllTokens) {
3441
        // Performance tuned for 2.0 (JDK1.4)
3442
3443 1 1. splitWorker : negated conditional → KILLED
        if (str == null) {
3444 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3445
        }
3446
        final int len = str.length();
3447 1 1. splitWorker : negated conditional → KILLED
        if (len == 0) {
3448 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3449
        }
3450
        final List<String> list = new ArrayList<>();
3451
        int i = 0, start = 0;
3452
        boolean match = false;
3453
        boolean lastMatch = false;
3454 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
        while (i < len) {
3455 1 1. splitWorker : negated conditional → KILLED
            if (str.charAt(i) == separatorChar) {
3456 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                if (match || preserveAllTokens) {
3457
                    list.add(str.substring(start, i));
3458
                    match = false;
3459
                    lastMatch = true;
3460
                }
3461 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                start = ++i;
3462
                continue;
3463
            }
3464
            lastMatch = false;
3465
            match = true;
3466 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
            i++;
3467
        }
3468 3 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
3. splitWorker : negated conditional → KILLED
        if (match || preserveAllTokens && lastMatch) {
3469
            list.add(str.substring(start, i));
3470
        }
3471 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3472
    }
3473
3474
    /**
3475
     * <p>Splits the provided text into an array, separators specified,
3476
     * preserving all tokens, including empty tokens created by adjacent
3477
     * separators. This is an alternative to using StringTokenizer.</p>
3478
     *
3479
     * <p>The separator is not included in the returned String array.
3480
     * Adjacent separators are treated as separators for empty tokens.
3481
     * For more control over the split use the StrTokenizer class.</p>
3482
     *
3483
     * <p>A {@code null} input String returns {@code null}.
3484
     * A {@code null} separatorChars splits on whitespace.</p>
3485
     *
3486
     * <pre>
3487
     * StringUtils.splitPreserveAllTokens(null, *)           = null
3488
     * StringUtils.splitPreserveAllTokens("", *)             = []
3489
     * StringUtils.splitPreserveAllTokens("abc def", null)   = ["abc", "def"]
3490
     * StringUtils.splitPreserveAllTokens("abc def", " ")    = ["abc", "def"]
3491
     * StringUtils.splitPreserveAllTokens("abc  def", " ")   = ["abc", "", def"]
3492
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":")   = ["ab", "cd", "ef"]
3493
     * StringUtils.splitPreserveAllTokens("ab:cd:ef:", ":")  = ["ab", "cd", "ef", ""]
3494
     * StringUtils.splitPreserveAllTokens("ab:cd:ef::", ":") = ["ab", "cd", "ef", "", ""]
3495
     * StringUtils.splitPreserveAllTokens("ab::cd:ef", ":")  = ["ab", "", cd", "ef"]
3496
     * StringUtils.splitPreserveAllTokens(":cd:ef", ":")     = ["", cd", "ef"]
3497
     * StringUtils.splitPreserveAllTokens("::cd:ef", ":")    = ["", "", cd", "ef"]
3498
     * StringUtils.splitPreserveAllTokens(":cd:ef:", ":")    = ["", cd", "ef", ""]
3499
     * </pre>
3500
     *
3501
     * @param str  the String to parse, may be {@code null}
3502
     * @param separatorChars  the characters used as the delimiters,
3503
     *  {@code null} splits on whitespace
3504
     * @return an array of parsed Strings, {@code null} if null String input
3505
     * @since 2.1
3506
     */
3507
    public static String[] splitPreserveAllTokens(final String str, final String separatorChars) {
3508 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, -1, true);
3509
    }
3510
3511
    /**
3512
     * <p>Splits the provided text into an array with a maximum length,
3513
     * separators specified, preserving all tokens, including empty tokens
3514
     * created by adjacent separators.</p>
3515
     *
3516
     * <p>The separator is not included in the returned String array.
3517
     * Adjacent separators are treated as separators for empty tokens.
3518
     * Adjacent separators are treated as one separator.</p>
3519
     *
3520
     * <p>A {@code null} input String returns {@code null}.
3521
     * A {@code null} separatorChars splits on whitespace.</p>
3522
     *
3523
     * <p>If more than {@code max} delimited substrings are found, the last
3524
     * returned string includes all characters after the first {@code max - 1}
3525
     * returned strings (including separator characters).</p>
3526
     *
3527
     * <pre>
3528
     * StringUtils.splitPreserveAllTokens(null, *, *)            = null
3529
     * StringUtils.splitPreserveAllTokens("", *, *)              = []
3530
     * StringUtils.splitPreserveAllTokens("ab de fg", null, 0)   = ["ab", "cd", "ef"]
3531
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 0) = ["ab", "cd", "ef"]
3532
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
3533
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
3534
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 2) = ["ab", "  de fg"]
3535
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 3) = ["ab", "", " de fg"]
3536
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 4) = ["ab", "", "", "de fg"]
3537
     * </pre>
3538
     *
3539
     * @param str  the String to parse, may be {@code null}
3540
     * @param separatorChars  the characters used as the delimiters,
3541
     *  {@code null} splits on whitespace
3542
     * @param max  the maximum number of elements to include in the
3543
     *  array. A zero or negative value implies no limit
3544
     * @return an array of parsed Strings, {@code null} if null String input
3545
     * @since 2.1
3546
     */
3547
    public static String[] splitPreserveAllTokens(final String str, final String separatorChars, final int max) {
3548 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, max, true);
3549
    }
3550
3551
    /**
3552
     * Performs the logic for the {@code split} and
3553
     * {@code splitPreserveAllTokens} methods that return a maximum array
3554
     * length.
3555
     *
3556
     * @param str  the String to parse, may be {@code null}
3557
     * @param separatorChars the separate character
3558
     * @param max  the maximum number of elements to include in the
3559
     *  array. A zero or negative value implies no limit.
3560
     * @param preserveAllTokens if {@code true}, adjacent separators are
3561
     * treated as empty token separators; if {@code false}, adjacent
3562
     * separators are treated as one separator.
3563
     * @return an array of parsed Strings, {@code null} if null String input
3564
     */
3565
    private static String[] splitWorker(final String str, final String separatorChars, final int max, final boolean preserveAllTokens) {
3566
        // Performance tuned for 2.0 (JDK1.4)
3567
        // Direct code is quicker than StringTokenizer.
3568
        // Also, StringTokenizer uses isSpace() not isWhitespace()
3569
3570 1 1. splitWorker : negated conditional → KILLED
        if (str == null) {
3571 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3572
        }
3573
        final int len = str.length();
3574 1 1. splitWorker : negated conditional → KILLED
        if (len == 0) {
3575 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3576
        }
3577
        final List<String> list = new ArrayList<>();
3578
        int sizePlus1 = 1;
3579
        int i = 0, start = 0;
3580
        boolean match = false;
3581
        boolean lastMatch = false;
3582 1 1. splitWorker : negated conditional → KILLED
        if (separatorChars == null) {
3583
            // Null separator means use whitespace
3584 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3585 1 1. splitWorker : negated conditional → KILLED
                if (Character.isWhitespace(str.charAt(i))) {
3586 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3587
                        lastMatch = true;
3588 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3589
                            i = len;
3590
                            lastMatch = false;
3591
                        }
3592
                        list.add(str.substring(start, i));
3593
                        match = false;
3594
                    }
3595 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3596
                    continue;
3597
                }
3598
                lastMatch = false;
3599
                match = true;
3600 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3601
            }
3602 1 1. splitWorker : negated conditional → SURVIVED
        } else if (separatorChars.length() == 1) {
3603
            // Optimise 1 character case
3604
            final char sep = separatorChars.charAt(0);
3605 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3606 1 1. splitWorker : negated conditional → KILLED
                if (str.charAt(i) == sep) {
3607 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3608
                        lastMatch = true;
3609 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3610
                            i = len;
3611
                            lastMatch = false;
3612
                        }
3613
                        list.add(str.substring(start, i));
3614
                        match = false;
3615
                    }
3616 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3617
                    continue;
3618
                }
3619
                lastMatch = false;
3620
                match = true;
3621 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3622
            }
3623
        } else {
3624
            // standard case
3625 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3626 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
                if (separatorChars.indexOf(str.charAt(i)) >= 0) {
3627 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3628
                        lastMatch = true;
3629 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3630
                            i = len;
3631
                            lastMatch = false;
3632
                        }
3633
                        list.add(str.substring(start, i));
3634
                        match = false;
3635
                    }
3636 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3637
                    continue;
3638
                }
3639
                lastMatch = false;
3640
                match = true;
3641 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3642
            }
3643
        }
3644 3 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
3. splitWorker : negated conditional → KILLED
        if (match || preserveAllTokens && lastMatch) {
3645
            list.add(str.substring(start, i));
3646
        }
3647 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3648
    }
3649
3650
    /**
3651
     * <p>Splits a String by Character type as returned by
3652
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3653
     * characters of the same type are returned as complete tokens.
3654
     * <pre>
3655
     * StringUtils.splitByCharacterType(null)         = null
3656
     * StringUtils.splitByCharacterType("")           = []
3657
     * StringUtils.splitByCharacterType("ab de fg")   = ["ab", " ", "de", " ", "fg"]
3658
     * StringUtils.splitByCharacterType("ab   de fg") = ["ab", "   ", "de", " ", "fg"]
3659
     * StringUtils.splitByCharacterType("ab:cd:ef")   = ["ab", ":", "cd", ":", "ef"]
3660
     * StringUtils.splitByCharacterType("number5")    = ["number", "5"]
3661
     * StringUtils.splitByCharacterType("fooBar")     = ["foo", "B", "ar"]
3662
     * StringUtils.splitByCharacterType("foo200Bar")  = ["foo", "200", "B", "ar"]
3663
     * StringUtils.splitByCharacterType("ASFRules")   = ["ASFR", "ules"]
3664
     * </pre>
3665
     * @param str the String to split, may be {@code null}
3666
     * @return an array of parsed Strings, {@code null} if null String input
3667
     * @since 2.4
3668
     */
3669
    public static String[] splitByCharacterType(final String str) {
3670 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByCharacterType(str, false);
3671
    }
3672
3673
    /**
3674
     * <p>Splits a String by Character type as returned by
3675
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3676
     * characters of the same type are returned as complete tokens, with the
3677
     * following exception: the character of type
3678
     * {@code Character.UPPERCASE_LETTER}, if any, immediately
3679
     * preceding a token of type {@code Character.LOWERCASE_LETTER}
3680
     * will belong to the following token rather than to the preceding, if any,
3681
     * {@code Character.UPPERCASE_LETTER} token.
3682
     * <pre>
3683
     * StringUtils.splitByCharacterTypeCamelCase(null)         = null
3684
     * StringUtils.splitByCharacterTypeCamelCase("")           = []
3685
     * StringUtils.splitByCharacterTypeCamelCase("ab de fg")   = ["ab", " ", "de", " ", "fg"]
3686
     * StringUtils.splitByCharacterTypeCamelCase("ab   de fg") = ["ab", "   ", "de", " ", "fg"]
3687
     * StringUtils.splitByCharacterTypeCamelCase("ab:cd:ef")   = ["ab", ":", "cd", ":", "ef"]
3688
     * StringUtils.splitByCharacterTypeCamelCase("number5")    = ["number", "5"]
3689
     * StringUtils.splitByCharacterTypeCamelCase("fooBar")     = ["foo", "Bar"]
3690
     * StringUtils.splitByCharacterTypeCamelCase("foo200Bar")  = ["foo", "200", "Bar"]
3691
     * StringUtils.splitByCharacterTypeCamelCase("ASFRules")   = ["ASF", "Rules"]
3692
     * </pre>
3693
     * @param str the String to split, may be {@code null}
3694
     * @return an array of parsed Strings, {@code null} if null String input
3695
     * @since 2.4
3696
     */
3697
    public static String[] splitByCharacterTypeCamelCase(final String str) {
3698 1 1. splitByCharacterTypeCamelCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterTypeCamelCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByCharacterType(str, true);
3699
    }
3700
3701
    /**
3702
     * <p>Splits a String by Character type as returned by
3703
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3704
     * characters of the same type are returned as complete tokens, with the
3705
     * following exception: if {@code camelCase} is {@code true},
3706
     * the character of type {@code Character.UPPERCASE_LETTER}, if any,
3707
     * immediately preceding a token of type {@code Character.LOWERCASE_LETTER}
3708
     * will belong to the following token rather than to the preceding, if any,
3709
     * {@code Character.UPPERCASE_LETTER} token.
3710
     * @param str the String to split, may be {@code null}
3711
     * @param camelCase whether to use so-called "camel-case" for letter types
3712
     * @return an array of parsed Strings, {@code null} if null String input
3713
     * @since 2.4
3714
     */
3715
    private static String[] splitByCharacterType(final String str, final boolean camelCase) {
3716 1 1. splitByCharacterType : negated conditional → KILLED
        if (str == null) {
3717 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3718
        }
3719 1 1. splitByCharacterType : negated conditional → KILLED
        if (str.isEmpty()) {
3720 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3721
        }
3722
        final char[] c = str.toCharArray();
3723
        final List<String> list = new ArrayList<>();
3724
        int tokenStart = 0;
3725
        int currentType = Character.getType(c[tokenStart]);
3726 4 1. splitByCharacterType : changed conditional boundary → KILLED
2. splitByCharacterType : Changed increment from 1 to -1 → KILLED
3. splitByCharacterType : Replaced integer addition with subtraction → KILLED
4. splitByCharacterType : negated conditional → KILLED
        for (int pos = tokenStart + 1; pos < c.length; pos++) {
3727
            final int type = Character.getType(c[pos]);
3728 1 1. splitByCharacterType : negated conditional → KILLED
            if (type == currentType) {
3729
                continue;
3730
            }
3731 3 1. splitByCharacterType : negated conditional → KILLED
2. splitByCharacterType : negated conditional → KILLED
3. splitByCharacterType : negated conditional → KILLED
            if (camelCase && type == Character.LOWERCASE_LETTER && currentType == Character.UPPERCASE_LETTER) {
3732 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
                final int newTokenStart = pos - 1;
3733 1 1. splitByCharacterType : negated conditional → KILLED
                if (newTokenStart != tokenStart) {
3734 1 1. splitByCharacterType : Replaced integer subtraction with addition → SURVIVED
                    list.add(new String(c, tokenStart, newTokenStart - tokenStart));
3735
                    tokenStart = newTokenStart;
3736
                }
3737
            } else {
3738 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
                list.add(new String(c, tokenStart, pos - tokenStart));
3739
                tokenStart = pos;
3740
            }
3741
            currentType = type;
3742
        }
3743 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
        list.add(new String(c, tokenStart, c.length - tokenStart));
3744 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3745
    }
3746
3747
    // Joining
3748
    //-----------------------------------------------------------------------
3749
    /**
3750
     * <p>Joins the elements of the provided array into a single String
3751
     * containing the provided list of elements.</p>
3752
     *
3753
     * <p>No separator is added to the joined String.
3754
     * Null objects or empty strings within the array are represented by
3755
     * empty strings.</p>
3756
     *
3757
     * <pre>
3758
     * StringUtils.join(null)            = null
3759
     * StringUtils.join([])              = ""
3760
     * StringUtils.join([null])          = ""
3761
     * StringUtils.join(["a", "b", "c"]) = "abc"
3762
     * StringUtils.join([null, "", "a"]) = "a"
3763
     * </pre>
3764
     *
3765
     * @param <T> the specific type of values to join together
3766
     * @param elements  the values to join together, may be null
3767
     * @return the joined String, {@code null} if null array input
3768
     * @since 2.0
3769
     * @since 3.0 Changed signature to use varargs
3770
     */
3771
    @SafeVarargs
3772
    public static <T> String join(final T... elements) {
3773 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(elements, null);
3774
    }
3775
3776
    /**
3777
     * <p>Joins the elements of the provided array into a single String
3778
     * containing the provided list of elements.</p>
3779
     *
3780
     * <p>No delimiter is added before or after the list.
3781
     * Null objects or empty strings within the array are represented by
3782
     * empty strings.</p>
3783
     *
3784
     * <pre>
3785
     * StringUtils.join(null, *)               = null
3786
     * StringUtils.join([], *)                 = ""
3787
     * StringUtils.join([null], *)             = ""
3788
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
3789
     * StringUtils.join(["a", "b", "c"], null) = "abc"
3790
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
3791
     * </pre>
3792
     *
3793
     * @param array  the array of values to join together, may be null
3794
     * @param separator  the separator character to use
3795
     * @return the joined String, {@code null} if null array input
3796
     * @since 2.0
3797
     */
3798
    public static String join(final Object[] array, final char separator) {
3799 1 1. join : negated conditional → KILLED
        if (array == null) {
3800 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3801
        }
3802 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3803
    }
3804
3805
    /**
3806
     * <p>
3807
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3808
     * </p>
3809
     *
3810
     * <p>
3811
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3812
     * by empty strings.
3813
     * </p>
3814
     *
3815
     * <pre>
3816
     * StringUtils.join(null, *)               = null
3817
     * StringUtils.join([], *)                 = ""
3818
     * StringUtils.join([null], *)             = ""
3819
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3820
     * StringUtils.join([1, 2, 3], null) = "123"
3821
     * </pre>
3822
     *
3823
     * @param array
3824
     *            the array of values to join together, may be null
3825
     * @param separator
3826
     *            the separator character to use
3827
     * @return the joined String, {@code null} if null array input
3828
     * @since 3.2
3829
     */
3830
    public static String join(final long[] array, final char separator) {
3831 1 1. join : negated conditional → KILLED
        if (array == null) {
3832 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3833
        }
3834 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3835
    }
3836
3837
    /**
3838
     * <p>
3839
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3840
     * </p>
3841
     *
3842
     * <p>
3843
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3844
     * by empty strings.
3845
     * </p>
3846
     *
3847
     * <pre>
3848
     * StringUtils.join(null, *)               = null
3849
     * StringUtils.join([], *)                 = ""
3850
     * StringUtils.join([null], *)             = ""
3851
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3852
     * StringUtils.join([1, 2, 3], null) = "123"
3853
     * </pre>
3854
     *
3855
     * @param array
3856
     *            the array of values to join together, may be null
3857
     * @param separator
3858
     *            the separator character to use
3859
     * @return the joined String, {@code null} if null array input
3860
     * @since 3.2
3861
     */
3862
    public static String join(final int[] array, final char separator) {
3863 1 1. join : negated conditional → KILLED
        if (array == null) {
3864 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3865
        }
3866 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3867
    }
3868
3869
    /**
3870
     * <p>
3871
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3872
     * </p>
3873
     *
3874
     * <p>
3875
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3876
     * by empty strings.
3877
     * </p>
3878
     *
3879
     * <pre>
3880
     * StringUtils.join(null, *)               = null
3881
     * StringUtils.join([], *)                 = ""
3882
     * StringUtils.join([null], *)             = ""
3883
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3884
     * StringUtils.join([1, 2, 3], null) = "123"
3885
     * </pre>
3886
     *
3887
     * @param array
3888
     *            the array of values to join together, may be null
3889
     * @param separator
3890
     *            the separator character to use
3891
     * @return the joined String, {@code null} if null array input
3892
     * @since 3.2
3893
     */
3894
    public static String join(final short[] array, final char separator) {
3895 1 1. join : negated conditional → KILLED
        if (array == null) {
3896 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3897
        }
3898 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3899
    }
3900
3901
    /**
3902
     * <p>
3903
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3904
     * </p>
3905
     *
3906
     * <p>
3907
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3908
     * by empty strings.
3909
     * </p>
3910
     *
3911
     * <pre>
3912
     * StringUtils.join(null, *)               = null
3913
     * StringUtils.join([], *)                 = ""
3914
     * StringUtils.join([null], *)             = ""
3915
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3916
     * StringUtils.join([1, 2, 3], null) = "123"
3917
     * </pre>
3918
     *
3919
     * @param array
3920
     *            the array of values to join together, may be null
3921
     * @param separator
3922
     *            the separator character to use
3923
     * @return the joined String, {@code null} if null array input
3924
     * @since 3.2
3925
     */
3926
    public static String join(final byte[] array, final char separator) {
3927 1 1. join : negated conditional → KILLED
        if (array == null) {
3928 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3929
        }
3930 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3931
    }
3932
3933
    /**
3934
     * <p>
3935
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3936
     * </p>
3937
     *
3938
     * <p>
3939
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3940
     * by empty strings.
3941
     * </p>
3942
     *
3943
     * <pre>
3944
     * StringUtils.join(null, *)               = null
3945
     * StringUtils.join([], *)                 = ""
3946
     * StringUtils.join([null], *)             = ""
3947
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3948
     * StringUtils.join([1, 2, 3], null) = "123"
3949
     * </pre>
3950
     *
3951
     * @param array
3952
     *            the array of values to join together, may be null
3953
     * @param separator
3954
     *            the separator character to use
3955
     * @return the joined String, {@code null} if null array input
3956
     * @since 3.2
3957
     */
3958
    public static String join(final char[] array, final char separator) {
3959 1 1. join : negated conditional → KILLED
        if (array == null) {
3960 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3961
        }
3962 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3963
    }
3964
3965
    /**
3966
     * <p>
3967
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3968
     * </p>
3969
     *
3970
     * <p>
3971
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3972
     * by empty strings.
3973
     * </p>
3974
     *
3975
     * <pre>
3976
     * StringUtils.join(null, *)               = null
3977
     * StringUtils.join([], *)                 = ""
3978
     * StringUtils.join([null], *)             = ""
3979
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3980
     * StringUtils.join([1, 2, 3], null) = "123"
3981
     * </pre>
3982
     *
3983
     * @param array
3984
     *            the array of values to join together, may be null
3985
     * @param separator
3986
     *            the separator character to use
3987
     * @return the joined String, {@code null} if null array input
3988
     * @since 3.2
3989
     */
3990
    public static String join(final float[] array, final char separator) {
3991 1 1. join : negated conditional → KILLED
        if (array == null) {
3992 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3993
        }
3994 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3995
    }
3996
3997
    /**
3998
     * <p>
3999
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4000
     * </p>
4001
     *
4002
     * <p>
4003
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4004
     * by empty strings.
4005
     * </p>
4006
     *
4007
     * <pre>
4008
     * StringUtils.join(null, *)               = null
4009
     * StringUtils.join([], *)                 = ""
4010
     * StringUtils.join([null], *)             = ""
4011
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4012
     * StringUtils.join([1, 2, 3], null) = "123"
4013
     * </pre>
4014
     *
4015
     * @param array
4016
     *            the array of values to join together, may be null
4017
     * @param separator
4018
     *            the separator character to use
4019
     * @return the joined String, {@code null} if null array input
4020
     * @since 3.2
4021
     */
4022
    public static String join(final double[] array, final char separator) {
4023 1 1. join : negated conditional → KILLED
        if (array == null) {
4024 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4025
        }
4026 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
4027
    }
4028
4029
4030
    /**
4031
     * <p>Joins the elements of the provided array into a single String
4032
     * containing the provided list of elements.</p>
4033
     *
4034
     * <p>No delimiter is added before or after the list.
4035
     * Null objects or empty strings within the array are represented by
4036
     * empty strings.</p>
4037
     *
4038
     * <pre>
4039
     * StringUtils.join(null, *)               = null
4040
     * StringUtils.join([], *)                 = ""
4041
     * StringUtils.join([null], *)             = ""
4042
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
4043
     * StringUtils.join(["a", "b", "c"], null) = "abc"
4044
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
4045
     * </pre>
4046
     *
4047
     * @param array  the array of values to join together, may be null
4048
     * @param separator  the separator character to use
4049
     * @param startIndex the first index to start joining from.  It is
4050
     * an error to pass in an end index past the end of the array
4051
     * @param endIndex the index to stop joining from (exclusive). It is
4052
     * an error to pass in an end index past the end of the array
4053
     * @return the joined String, {@code null} if null array input
4054
     * @since 2.0
4055
     */
4056
    public static String join(final Object[] array, final char separator, final int startIndex, final int endIndex) {
4057 1 1. join : negated conditional → KILLED
        if (array == null) {
4058 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4059
        }
4060 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4061 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4062 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4063
        }
4064 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4065 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4066 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4067
                buf.append(separator);
4068
            }
4069 1 1. join : negated conditional → KILLED
            if (array[i] != null) {
4070
                buf.append(array[i]);
4071
            }
4072
        }
4073 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4074
    }
4075
4076
    /**
4077
     * <p>
4078
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4079
     * </p>
4080
     *
4081
     * <p>
4082
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4083
     * by empty strings.
4084
     * </p>
4085
     *
4086
     * <pre>
4087
     * StringUtils.join(null, *)               = null
4088
     * StringUtils.join([], *)                 = ""
4089
     * StringUtils.join([null], *)             = ""
4090
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4091
     * StringUtils.join([1, 2, 3], null) = "123"
4092
     * </pre>
4093
     *
4094
     * @param array
4095
     *            the array of values to join together, may be null
4096
     * @param separator
4097
     *            the separator character to use
4098
     * @param startIndex
4099
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4100
     *            array
4101
     * @param endIndex
4102
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4103
     *            the array
4104
     * @return the joined String, {@code null} if null array input
4105
     * @since 3.2
4106
     */
4107
    public static String join(final long[] array, final char separator, final int startIndex, final int endIndex) {
4108 1 1. join : negated conditional → KILLED
        if (array == null) {
4109 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4110
        }
4111 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4112 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4113 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4114
        }
4115 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4116 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4117 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4118
                buf.append(separator);
4119
            }
4120
            buf.append(array[i]);
4121
        }
4122 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4123
    }
4124
4125
    /**
4126
     * <p>
4127
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4128
     * </p>
4129
     *
4130
     * <p>
4131
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4132
     * by empty strings.
4133
     * </p>
4134
     *
4135
     * <pre>
4136
     * StringUtils.join(null, *)               = null
4137
     * StringUtils.join([], *)                 = ""
4138
     * StringUtils.join([null], *)             = ""
4139
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4140
     * StringUtils.join([1, 2, 3], null) = "123"
4141
     * </pre>
4142
     *
4143
     * @param array
4144
     *            the array of values to join together, may be null
4145
     * @param separator
4146
     *            the separator character to use
4147
     * @param startIndex
4148
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4149
     *            array
4150
     * @param endIndex
4151
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4152
     *            the array
4153
     * @return the joined String, {@code null} if null array input
4154
     * @since 3.2
4155
     */
4156
    public static String join(final int[] array, final char separator, final int startIndex, final int endIndex) {
4157 1 1. join : negated conditional → KILLED
        if (array == null) {
4158 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4159
        }
4160 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4161 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4162 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4163
        }
4164 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4165 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4166 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4167
                buf.append(separator);
4168
            }
4169
            buf.append(array[i]);
4170
        }
4171 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4172
    }
4173
4174
    /**
4175
     * <p>
4176
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4177
     * </p>
4178
     *
4179
     * <p>
4180
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4181
     * by empty strings.
4182
     * </p>
4183
     *
4184
     * <pre>
4185
     * StringUtils.join(null, *)               = null
4186
     * StringUtils.join([], *)                 = ""
4187
     * StringUtils.join([null], *)             = ""
4188
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4189
     * StringUtils.join([1, 2, 3], null) = "123"
4190
     * </pre>
4191
     *
4192
     * @param array
4193
     *            the array of values to join together, may be null
4194
     * @param separator
4195
     *            the separator character to use
4196
     * @param startIndex
4197
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4198
     *            array
4199
     * @param endIndex
4200
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4201
     *            the array
4202
     * @return the joined String, {@code null} if null array input
4203
     * @since 3.2
4204
     */
4205
    public static String join(final byte[] array, final char separator, final int startIndex, final int endIndex) {
4206 1 1. join : negated conditional → KILLED
        if (array == null) {
4207 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4208
        }
4209 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4210 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4211 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4212
        }
4213 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4214 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4215 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4216
                buf.append(separator);
4217
            }
4218
            buf.append(array[i]);
4219
        }
4220 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4221
    }
4222
4223
    /**
4224
     * <p>
4225
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4226
     * </p>
4227
     *
4228
     * <p>
4229
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4230
     * by empty strings.
4231
     * </p>
4232
     *
4233
     * <pre>
4234
     * StringUtils.join(null, *)               = null
4235
     * StringUtils.join([], *)                 = ""
4236
     * StringUtils.join([null], *)             = ""
4237
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4238
     * StringUtils.join([1, 2, 3], null) = "123"
4239
     * </pre>
4240
     *
4241
     * @param array
4242
     *            the array of values to join together, may be null
4243
     * @param separator
4244
     *            the separator character to use
4245
     * @param startIndex
4246
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4247
     *            array
4248
     * @param endIndex
4249
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4250
     *            the array
4251
     * @return the joined String, {@code null} if null array input
4252
     * @since 3.2
4253
     */
4254
    public static String join(final short[] array, final char separator, final int startIndex, final int endIndex) {
4255 1 1. join : negated conditional → KILLED
        if (array == null) {
4256 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4257
        }
4258 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4259 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4260 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4261
        }
4262 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4263 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4264 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4265
                buf.append(separator);
4266
            }
4267
            buf.append(array[i]);
4268
        }
4269 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4270
    }
4271
4272
    /**
4273
     * <p>
4274
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4275
     * </p>
4276
     *
4277
     * <p>
4278
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4279
     * by empty strings.
4280
     * </p>
4281
     *
4282
     * <pre>
4283
     * StringUtils.join(null, *)               = null
4284
     * StringUtils.join([], *)                 = ""
4285
     * StringUtils.join([null], *)             = ""
4286
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4287
     * StringUtils.join([1, 2, 3], null) = "123"
4288
     * </pre>
4289
     *
4290
     * @param array
4291
     *            the array of values to join together, may be null
4292
     * @param separator
4293
     *            the separator character to use
4294
     * @param startIndex
4295
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4296
     *            array
4297
     * @param endIndex
4298
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4299
     *            the array
4300
     * @return the joined String, {@code null} if null array input
4301
     * @since 3.2
4302
     */
4303
    public static String join(final char[] array, final char separator, final int startIndex, final int endIndex) {
4304 1 1. join : negated conditional → KILLED
        if (array == null) {
4305 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4306
        }
4307 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4308 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4309 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4310
        }
4311 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4312 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4313 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4314
                buf.append(separator);
4315
            }
4316
            buf.append(array[i]);
4317
        }
4318 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4319
    }
4320
4321
    /**
4322
     * <p>
4323
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4324
     * </p>
4325
     *
4326
     * <p>
4327
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4328
     * by empty strings.
4329
     * </p>
4330
     *
4331
     * <pre>
4332
     * StringUtils.join(null, *)               = null
4333
     * StringUtils.join([], *)                 = ""
4334
     * StringUtils.join([null], *)             = ""
4335
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4336
     * StringUtils.join([1, 2, 3], null) = "123"
4337
     * </pre>
4338
     *
4339
     * @param array
4340
     *            the array of values to join together, may be null
4341
     * @param separator
4342
     *            the separator character to use
4343
     * @param startIndex
4344
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4345
     *            array
4346
     * @param endIndex
4347
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4348
     *            the array
4349
     * @return the joined String, {@code null} if null array input
4350
     * @since 3.2
4351
     */
4352
    public static String join(final double[] array, final char separator, final int startIndex, final int endIndex) {
4353 1 1. join : negated conditional → KILLED
        if (array == null) {
4354 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4355
        }
4356 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4357 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4358 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4359
        }
4360 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4361 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4362 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4363
                buf.append(separator);
4364
            }
4365
            buf.append(array[i]);
4366
        }
4367 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4368
    }
4369
4370
    /**
4371
     * <p>
4372
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4373
     * </p>
4374
     *
4375
     * <p>
4376
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4377
     * by empty strings.
4378
     * </p>
4379
     *
4380
     * <pre>
4381
     * StringUtils.join(null, *)               = null
4382
     * StringUtils.join([], *)                 = ""
4383
     * StringUtils.join([null], *)             = ""
4384
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4385
     * StringUtils.join([1, 2, 3], null) = "123"
4386
     * </pre>
4387
     *
4388
     * @param array
4389
     *            the array of values to join together, may be null
4390
     * @param separator
4391
     *            the separator character to use
4392
     * @param startIndex
4393
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4394
     *            array
4395
     * @param endIndex
4396
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4397
     *            the array
4398
     * @return the joined String, {@code null} if null array input
4399
     * @since 3.2
4400
     */
4401
    public static String join(final float[] array, final char separator, final int startIndex, final int endIndex) {
4402 1 1. join : negated conditional → KILLED
        if (array == null) {
4403 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4404
        }
4405 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4406 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4407 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4408
        }
4409 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4410 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4411 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4412
                buf.append(separator);
4413
            }
4414
            buf.append(array[i]);
4415
        }
4416 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4417
    }
4418
4419
4420
    /**
4421
     * <p>Joins the elements of the provided array into a single String
4422
     * containing the provided list of elements.</p>
4423
     *
4424
     * <p>No delimiter is added before or after the list.
4425
     * A {@code null} separator is the same as an empty String ("").
4426
     * Null objects or empty strings within the array are represented by
4427
     * empty strings.</p>
4428
     *
4429
     * <pre>
4430
     * StringUtils.join(null, *)                = null
4431
     * StringUtils.join([], *)                  = ""
4432
     * StringUtils.join([null], *)              = ""
4433
     * StringUtils.join(["a", "b", "c"], "--")  = "a--b--c"
4434
     * StringUtils.join(["a", "b", "c"], null)  = "abc"
4435
     * StringUtils.join(["a", "b", "c"], "")    = "abc"
4436
     * StringUtils.join([null, "", "a"], ',')   = ",,a"
4437
     * </pre>
4438
     *
4439
     * @param array  the array of values to join together, may be null
4440
     * @param separator  the separator character to use, null treated as ""
4441
     * @return the joined String, {@code null} if null array input
4442
     */
4443
    public static String join(final Object[] array, final String separator) {
4444 1 1. join : negated conditional → KILLED
        if (array == null) {
4445 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4446
        }
4447 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
4448
    }
4449
4450
    /**
4451
     * <p>Joins the elements of the provided array into a single String
4452
     * containing the provided list of elements.</p>
4453
     *
4454
     * <p>No delimiter is added before or after the list.
4455
     * A {@code null} separator is the same as an empty String ("").
4456
     * Null objects or empty strings within the array are represented by
4457
     * empty strings.</p>
4458
     *
4459
     * <pre>
4460
     * StringUtils.join(null, *, *, *)                = null
4461
     * StringUtils.join([], *, *, *)                  = ""
4462
     * StringUtils.join([null], *, *, *)              = ""
4463
     * StringUtils.join(["a", "b", "c"], "--", 0, 3)  = "a--b--c"
4464
     * StringUtils.join(["a", "b", "c"], "--", 1, 3)  = "b--c"
4465
     * StringUtils.join(["a", "b", "c"], "--", 2, 3)  = "c"
4466
     * StringUtils.join(["a", "b", "c"], "--", 2, 2)  = ""
4467
     * StringUtils.join(["a", "b", "c"], null, 0, 3)  = "abc"
4468
     * StringUtils.join(["a", "b", "c"], "", 0, 3)    = "abc"
4469
     * StringUtils.join([null, "", "a"], ',', 0, 3)   = ",,a"
4470
     * </pre>
4471
     *
4472
     * @param array  the array of values to join together, may be null
4473
     * @param separator  the separator character to use, null treated as ""
4474
     * @param startIndex the first index to start joining from.
4475
     * @param endIndex the index to stop joining from (exclusive).
4476
     * @return the joined String, {@code null} if null array input; or the empty string
4477
     * if {@code endIndex - startIndex <= 0}. The number of joined entries is given by
4478
     * {@code endIndex - startIndex}
4479
     * @throws ArrayIndexOutOfBoundsException ife<br>
4480
     * {@code startIndex < 0} or <br>
4481
     * {@code startIndex >= array.length()} or <br>
4482
     * {@code endIndex < 0} or <br>
4483
     * {@code endIndex > array.length()}
4484
     */
4485
    public static String join(final Object[] array, String separator, final int startIndex, final int endIndex) {
4486 1 1. join : negated conditional → KILLED
        if (array == null) {
4487 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
            return null;
4488
        }
4489 1 1. join : negated conditional → KILLED
        if (separator == null) {
4490
            separator = EMPTY;
4491
        }
4492
4493
        // endIndex - startIndex > 0:   Len = NofStrings *(len(firstString) + len(separator))
4494
        //           (Assuming that all Strings are roughly equally long)
4495 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4496 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4497 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4498
        }
4499
4500 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4501
4502 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4503 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4504
                buf.append(separator);
4505
            }
4506 1 1. join : negated conditional → KILLED
            if (array[i] != null) {
4507
                buf.append(array[i]);
4508
            }
4509
        }
4510 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4511
    }
4512
4513
    /**
4514
     * <p>Joins the elements of the provided {@code Iterator} into
4515
     * a single String containing the provided elements.</p>
4516
     *
4517
     * <p>No delimiter is added before or after the list. Null objects or empty
4518
     * strings within the iteration are represented by empty strings.</p>
4519
     *
4520
     * <p>See the examples here: {@link #join(Object[],char)}. </p>
4521
     *
4522
     * @param iterator  the {@code Iterator} of values to join together, may be null
4523
     * @param separator  the separator character to use
4524
     * @return the joined String, {@code null} if null iterator input
4525
     * @since 2.0
4526
     */
4527
    public static String join(final Iterator<?> iterator, final char separator) {
4528
4529
        // handle null, zero and one elements before building a buffer
4530 1 1. join : negated conditional → KILLED
        if (iterator == null) {
4531 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4532
        }
4533 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4534 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4535
        }
4536
        final Object first = iterator.next();
4537 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4538
            final String result = Objects.toString(first, "");
4539 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
4540
        }
4541
4542
        // two or more elements
4543
        final StringBuilder buf = new StringBuilder(256); // Java default is 16, probably too small
4544 1 1. join : negated conditional → KILLED
        if (first != null) {
4545
            buf.append(first);
4546
        }
4547
4548 1 1. join : negated conditional → KILLED
        while (iterator.hasNext()) {
4549
            buf.append(separator);
4550
            final Object obj = iterator.next();
4551 1 1. join : negated conditional → KILLED
            if (obj != null) {
4552
                buf.append(obj);
4553
            }
4554
        }
4555
4556 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4557
    }
4558
4559
    /**
4560
     * <p>Joins the elements of the provided {@code Iterator} into
4561
     * a single String containing the provided elements.</p>
4562
     *
4563
     * <p>No delimiter is added before or after the list.
4564
     * A {@code null} separator is the same as an empty String ("").</p>
4565
     *
4566
     * <p>See the examples here: {@link #join(Object[],String)}. </p>
4567
     *
4568
     * @param iterator  the {@code Iterator} of values to join together, may be null
4569
     * @param separator  the separator character to use, null treated as ""
4570
     * @return the joined String, {@code null} if null iterator input
4571
     */
4572
    public static String join(final Iterator<?> iterator, final String separator) {
4573
4574
        // handle null, zero and one elements before building a buffer
4575 1 1. join : negated conditional → KILLED
        if (iterator == null) {
4576 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4577
        }
4578 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4579 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4580
        }
4581
        final Object first = iterator.next();
4582 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4583
            final String result = Objects.toString(first, "");
4584 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
4585
        }
4586
4587
        // two or more elements
4588
        final StringBuilder buf = new StringBuilder(256); // Java default is 16, probably too small
4589 1 1. join : negated conditional → KILLED
        if (first != null) {
4590
            buf.append(first);
4591
        }
4592
4593 1 1. join : negated conditional → KILLED
        while (iterator.hasNext()) {
4594 1 1. join : negated conditional → KILLED
            if (separator != null) {
4595
                buf.append(separator);
4596
            }
4597
            final Object obj = iterator.next();
4598 1 1. join : negated conditional → KILLED
            if (obj != null) {
4599
                buf.append(obj);
4600
            }
4601
        }
4602 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4603
    }
4604
4605
    /**
4606
     * <p>Joins the elements of the provided {@code Iterable} into
4607
     * a single String containing the provided elements.</p>
4608
     *
4609
     * <p>No delimiter is added before or after the list. Null objects or empty
4610
     * strings within the iteration are represented by empty strings.</p>
4611
     *
4612
     * <p>See the examples here: {@link #join(Object[],char)}. </p>
4613
     *
4614
     * @param iterable  the {@code Iterable} providing the values to join together, may be null
4615
     * @param separator  the separator character to use
4616
     * @return the joined String, {@code null} if null iterator input
4617
     * @since 2.3
4618
     */
4619
    public static String join(final Iterable<?> iterable, final char separator) {
4620 1 1. join : negated conditional → KILLED
        if (iterable == null) {
4621 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4622
        }
4623 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(iterable.iterator(), separator);
4624
    }
4625
4626
    /**
4627
     * <p>Joins the elements of the provided {@code Iterable} into
4628
     * a single String containing the provided elements.</p>
4629
     *
4630
     * <p>No delimiter is added before or after the list.
4631
     * A {@code null} separator is the same as an empty String ("").</p>
4632
     *
4633
     * <p>See the examples here: {@link #join(Object[],String)}. </p>
4634
     *
4635
     * @param iterable  the {@code Iterable} providing the values to join together, may be null
4636
     * @param separator  the separator character to use, null treated as ""
4637
     * @return the joined String, {@code null} if null iterator input
4638
     * @since 2.3
4639
     */
4640
    public static String join(final Iterable<?> iterable, final String separator) {
4641 1 1. join : negated conditional → KILLED
        if (iterable == null) {
4642 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4643
        }
4644 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(iterable.iterator(), separator);
4645
    }
4646
4647
    /**
4648
     * <p>Joins the elements of the provided varargs into a
4649
     * single String containing the provided elements.</p>
4650
     *
4651
     * <p>No delimiter is added before or after the list.
4652
     * {@code null} elements and separator are treated as empty Strings ("").</p>
4653
     *
4654
     * <pre>
4655
     * StringUtils.joinWith(",", {"a", "b"})        = "a,b"
4656
     * StringUtils.joinWith(",", {"a", "b",""})     = "a,b,"
4657
     * StringUtils.joinWith(",", {"a", null, "b"})  = "a,,b"
4658
     * StringUtils.joinWith(null, {"a", "b"})       = "ab"
4659
     * </pre>
4660
     *
4661
     * @param separator the separator character to use, null treated as ""
4662
     * @param objects the varargs providing the values to join together. {@code null} elements are treated as ""
4663
     * @return the joined String.
4664
     * @throws java.lang.IllegalArgumentException if a null varargs is provided
4665
     * @since 3.5
4666
     */
4667
    public static String joinWith(final String separator, final Object... objects) {
4668 1 1. joinWith : negated conditional → KILLED
        if (objects == null) {
4669
            throw new IllegalArgumentException("Object varargs must not be null");
4670
        }
4671
4672
        final String sanitizedSeparator = defaultString(separator, StringUtils.EMPTY);
4673
4674
        final StringBuilder result = new StringBuilder();
4675
4676
        final Iterator<Object> iterator = Arrays.asList(objects).iterator();
4677 1 1. joinWith : negated conditional → KILLED
        while (iterator.hasNext()) {
4678
            final String value = Objects.toString(iterator.next(), "");
4679
            result.append(value);
4680
4681 1 1. joinWith : negated conditional → KILLED
            if (iterator.hasNext()) {
4682
                result.append(sanitizedSeparator);
4683
            }
4684
        }
4685
4686 1 1. joinWith : mutated return of Object value for org/apache/commons/lang3/StringUtils::joinWith to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return result.toString();
4687
    }
4688
4689
    // Delete
4690
    //-----------------------------------------------------------------------
4691
    /**
4692
     * <p>Deletes all whitespaces from a String as defined by
4693
     * {@link Character#isWhitespace(char)}.</p>
4694
     *
4695
     * <pre>
4696
     * StringUtils.deleteWhitespace(null)         = null
4697
     * StringUtils.deleteWhitespace("")           = ""
4698
     * StringUtils.deleteWhitespace("abc")        = "abc"
4699
     * StringUtils.deleteWhitespace("   ab  c  ") = "abc"
4700
     * </pre>
4701
     *
4702
     * @param str  the String to delete whitespace from, may be null
4703
     * @return the String without whitespaces, {@code null} if null String input
4704
     */
4705
    public static String deleteWhitespace(final String str) {
4706 1 1. deleteWhitespace : negated conditional → KILLED
        if (isEmpty(str)) {
4707 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4708
        }
4709
        final int sz = str.length();
4710
        final char[] chs = new char[sz];
4711
        int count = 0;
4712 3 1. deleteWhitespace : changed conditional boundary → KILLED
2. deleteWhitespace : Changed increment from 1 to -1 → KILLED
3. deleteWhitespace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
4713 1 1. deleteWhitespace : negated conditional → KILLED
            if (!Character.isWhitespace(str.charAt(i))) {
4714 1 1. deleteWhitespace : Changed increment from 1 to -1 → KILLED
                chs[count++] = str.charAt(i);
4715
            }
4716
        }
4717 1 1. deleteWhitespace : negated conditional → KILLED
        if (count == sz) {
4718 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4719
        }
4720 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(chs, 0, count);
4721
    }
4722
4723
    // Remove
4724
    //-----------------------------------------------------------------------
4725
    /**
4726
     * <p>Removes a substring only if it is at the beginning of a source string,
4727
     * otherwise returns the source string.</p>
4728
     *
4729
     * <p>A {@code null} source string will return {@code null}.
4730
     * An empty ("") source string will return the empty string.
4731
     * A {@code null} search string will return the source string.</p>
4732
     *
4733
     * <pre>
4734
     * StringUtils.removeStart(null, *)      = null
4735
     * StringUtils.removeStart("", *)        = ""
4736
     * StringUtils.removeStart(*, null)      = *
4737
     * StringUtils.removeStart("www.domain.com", "www.")   = "domain.com"
4738
     * StringUtils.removeStart("domain.com", "www.")       = "domain.com"
4739
     * StringUtils.removeStart("www.domain.com", "domain") = "www.domain.com"
4740
     * StringUtils.removeStart("abc", "")    = "abc"
4741
     * </pre>
4742
     *
4743
     * @param str  the source String to search, may be null
4744
     * @param remove  the String to search for and remove, may be null
4745
     * @return the substring with the string removed if found,
4746
     *  {@code null} if null String input
4747
     * @since 2.1
4748
     */
4749
    public static String removeStart(final String str, final String remove) {
4750 2 1. removeStart : negated conditional → KILLED
2. removeStart : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4751 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4752
        }
4753 1 1. removeStart : negated conditional → KILLED
        if (str.startsWith(remove)){
4754 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(remove.length());
4755
        }
4756 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4757
    }
4758
4759
    /**
4760
     * <p>Case insensitive removal of a substring if it is at the beginning of a source string,
4761
     * otherwise returns the source string.</p>
4762
     *
4763
     * <p>A {@code null} source string will return {@code null}.
4764
     * An empty ("") source string will return the empty string.
4765
     * A {@code null} search string will return the source string.</p>
4766
     *
4767
     * <pre>
4768
     * StringUtils.removeStartIgnoreCase(null, *)      = null
4769
     * StringUtils.removeStartIgnoreCase("", *)        = ""
4770
     * StringUtils.removeStartIgnoreCase(*, null)      = *
4771
     * StringUtils.removeStartIgnoreCase("www.domain.com", "www.")   = "domain.com"
4772
     * StringUtils.removeStartIgnoreCase("www.domain.com", "WWW.")   = "domain.com"
4773
     * StringUtils.removeStartIgnoreCase("domain.com", "www.")       = "domain.com"
4774
     * StringUtils.removeStartIgnoreCase("www.domain.com", "domain") = "www.domain.com"
4775
     * StringUtils.removeStartIgnoreCase("abc", "")    = "abc"
4776
     * </pre>
4777
     *
4778
     * @param str  the source String to search, may be null
4779
     * @param remove  the String to search for (case insensitive) and remove, may be null
4780
     * @return the substring with the string removed if found,
4781
     *  {@code null} if null String input
4782
     * @since 2.4
4783
     */
4784
    public static String removeStartIgnoreCase(final String str, final String remove) {
4785 2 1. removeStartIgnoreCase : negated conditional → KILLED
2. removeStartIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4786 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4787
        }
4788 1 1. removeStartIgnoreCase : negated conditional → KILLED
        if (startsWithIgnoreCase(str, remove)) {
4789 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(remove.length());
4790
        }
4791 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4792
    }
4793
4794
    /**
4795
     * <p>Removes a substring only if it is at the end of a source string,
4796
     * otherwise returns the source string.</p>
4797
     *
4798
     * <p>A {@code null} source string will return {@code null}.
4799
     * An empty ("") source string will return the empty string.
4800
     * A {@code null} search string will return the source string.</p>
4801
     *
4802
     * <pre>
4803
     * StringUtils.removeEnd(null, *)      = null
4804
     * StringUtils.removeEnd("", *)        = ""
4805
     * StringUtils.removeEnd(*, null)      = *
4806
     * StringUtils.removeEnd("www.domain.com", ".com.")  = "www.domain.com"
4807
     * StringUtils.removeEnd("www.domain.com", ".com")   = "www.domain"
4808
     * StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com"
4809
     * StringUtils.removeEnd("abc", "")    = "abc"
4810
     * </pre>
4811
     *
4812
     * @param str  the source String to search, may be null
4813
     * @param remove  the String to search for and remove, may be null
4814
     * @return the substring with the string removed if found,
4815
     *  {@code null} if null String input
4816
     * @since 2.1
4817
     */
4818
    public static String removeEnd(final String str, final String remove) {
4819 2 1. removeEnd : negated conditional → KILLED
2. removeEnd : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4820 1 1. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4821
        }
4822 1 1. removeEnd : negated conditional → KILLED
        if (str.endsWith(remove)) {
4823 2 1. removeEnd : Replaced integer subtraction with addition → KILLED
2. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, str.length() - remove.length());
4824
        }
4825 1 1. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4826
    }
4827
4828
    /**
4829
     * <p>Case insensitive removal of a substring if it is at the end of a source string,
4830
     * otherwise returns the source string.</p>
4831
     *
4832
     * <p>A {@code null} source string will return {@code null}.
4833
     * An empty ("") source string will return the empty string.
4834
     * A {@code null} search string will return the source string.</p>
4835
     *
4836
     * <pre>
4837
     * StringUtils.removeEndIgnoreCase(null, *)      = null
4838
     * StringUtils.removeEndIgnoreCase("", *)        = ""
4839
     * StringUtils.removeEndIgnoreCase(*, null)      = *
4840
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com.")  = "www.domain.com"
4841
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com")   = "www.domain"
4842
     * StringUtils.removeEndIgnoreCase("www.domain.com", "domain") = "www.domain.com"
4843
     * StringUtils.removeEndIgnoreCase("abc", "")    = "abc"
4844
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".COM") = "www.domain")
4845
     * StringUtils.removeEndIgnoreCase("www.domain.COM", ".com") = "www.domain")
4846
     * </pre>
4847
     *
4848
     * @param str  the source String to search, may be null
4849
     * @param remove  the String to search for (case insensitive) and remove, may be null
4850
     * @return the substring with the string removed if found,
4851
     *  {@code null} if null String input
4852
     * @since 2.4
4853
     */
4854
    public static String removeEndIgnoreCase(final String str, final String remove) {
4855 2 1. removeEndIgnoreCase : negated conditional → KILLED
2. removeEndIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4856 1 1. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4857
        }
4858 1 1. removeEndIgnoreCase : negated conditional → KILLED
        if (endsWithIgnoreCase(str, remove)) {
4859 2 1. removeEndIgnoreCase : Replaced integer subtraction with addition → KILLED
2. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, str.length() - remove.length());
4860
        }
4861 1 1. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4862
    }
4863
4864
    /**
4865
     * <p>Removes all occurrences of a substring from within the source string.</p>
4866
     *
4867
     * <p>A {@code null} source string will return {@code null}.
4868
     * An empty ("") source string will return the empty string.
4869
     * A {@code null} remove string will return the source string.
4870
     * An empty ("") remove string will return the source string.</p>
4871
     *
4872
     * <pre>
4873
     * StringUtils.remove(null, *)        = null
4874
     * StringUtils.remove("", *)          = ""
4875
     * StringUtils.remove(*, null)        = *
4876
     * StringUtils.remove(*, "")          = *
4877
     * StringUtils.remove("queued", "ue") = "qd"
4878
     * StringUtils.remove("queued", "zz") = "queued"
4879
     * </pre>
4880
     *
4881
     * @param str  the source String to search, may be null
4882
     * @param remove  the String to search for and remove, may be null
4883
     * @return the substring with the string removed if found,
4884
     *  {@code null} if null String input
4885
     * @since 2.1
4886
     */
4887
    public static String remove(final String str, final String remove) {
4888 2 1. remove : negated conditional → KILLED
2. remove : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4889 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4890
        }
4891 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(str, remove, EMPTY, -1);
4892
    }
4893
4894
    /**
4895
     * <p>
4896
     * Case insensitive removal of all occurrences of a substring from within
4897
     * the source string.
4898
     * </p>
4899
     *
4900
     * <p>
4901
     * A {@code null} source string will return {@code null}. An empty ("")
4902
     * source string will return the empty string. A {@code null} remove string
4903
     * will return the source string. An empty ("") remove string will return
4904
     * the source string.
4905
     * </p>
4906
     *
4907
     * <pre>
4908
     * StringUtils.removeIgnoreCase(null, *)        = null
4909
     * StringUtils.removeIgnoreCase("", *)          = ""
4910
     * StringUtils.removeIgnoreCase(*, null)        = *
4911
     * StringUtils.removeIgnoreCase(*, "")          = *
4912
     * StringUtils.removeIgnoreCase("queued", "ue") = "qd"
4913
     * StringUtils.removeIgnoreCase("queued", "zz") = "queued"
4914
     * StringUtils.removeIgnoreCase("quEUed", "UE") = "qd"
4915
     * StringUtils.removeIgnoreCase("queued", "zZ") = "queued"
4916
     * </pre>
4917
     *
4918
     * @param str
4919
     *            the source String to search, may be null
4920
     * @param remove
4921
     *            the String to search for (case insensitive) and remove, may be
4922
     *            null
4923
     * @return the substring with the string removed if found, {@code null} if
4924
     *         null String input
4925
     * @since 3.5
4926
     */
4927
    public static String removeIgnoreCase(final String str, final String remove) {
4928 2 1. removeIgnoreCase : negated conditional → KILLED
2. removeIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4929 1 1. removeIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4930
        }
4931 1 1. removeIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceIgnoreCase(str, remove, EMPTY, -1);
4932
    }
4933
4934
    /**
4935
     * <p>Removes all occurrences of a character from within the source string.</p>
4936
     *
4937
     * <p>A {@code null} source string will return {@code null}.
4938
     * An empty ("") source string will return the empty string.</p>
4939
     *
4940
     * <pre>
4941
     * StringUtils.remove(null, *)       = null
4942
     * StringUtils.remove("", *)         = ""
4943
     * StringUtils.remove("queued", 'u') = "qeed"
4944
     * StringUtils.remove("queued", 'z') = "queued"
4945
     * </pre>
4946
     *
4947
     * @param str  the source String to search, may be null
4948
     * @param remove  the char to search for and remove, may be null
4949
     * @return the substring with the char removed if found,
4950
     *  {@code null} if null String input
4951
     * @since 2.1
4952
     */
4953
    public static String remove(final String str, final char remove) {
4954 2 1. remove : negated conditional → KILLED
2. remove : negated conditional → KILLED
        if (isEmpty(str) || str.indexOf(remove) == INDEX_NOT_FOUND) {
4955 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4956
        }
4957
        final char[] chars = str.toCharArray();
4958
        int pos = 0;
4959 3 1. remove : changed conditional boundary → KILLED
2. remove : Changed increment from 1 to -1 → KILLED
3. remove : negated conditional → KILLED
        for (int i = 0; i < chars.length; i++) {
4960 1 1. remove : negated conditional → KILLED
            if (chars[i] != remove) {
4961 1 1. remove : Changed increment from 1 to -1 → KILLED
                chars[pos++] = chars[i];
4962
            }
4963
        }
4964 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(chars, 0, pos);
4965
    }
4966
4967
    /**
4968
     * <p>Removes each substring of the text String that matches the given regular expression.</p>
4969
     *
4970
     * This method is a {@code null} safe equivalent to:
4971
     * <ul>
4972
     *  <li>{@code text.replaceAll(regex, StringUtils.EMPTY)}</li>
4973
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceAll(StringUtils.EMPTY)}</li>
4974
     * </ul>
4975
     *
4976
     * <p>A {@code null} reference passed to this method is a no-op.</p>
4977
     *
4978
     * <p>Unlike in the {@link #removePattern(String, String)} method, the {@link Pattern#DOTALL} option
4979
     * is NOT automatically added.
4980
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
4981
     * DOTALL is also know as single-line mode in Perl.</p>
4982
     *
4983
     * <pre>
4984
     * StringUtils.removeAll(null, *)      = null
4985
     * StringUtils.removeAll("any", null)  = "any"
4986
     * StringUtils.removeAll("any", "")    = "any"
4987
     * StringUtils.removeAll("any", ".*")  = ""
4988
     * StringUtils.removeAll("any", ".+")  = ""
4989
     * StringUtils.removeAll("abc", ".?")  = ""
4990
     * StringUtils.removeAll("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")      = "A\nB"
4991
     * StringUtils.removeAll("A&lt;__&gt;\n&lt;__&gt;B", "(?s)&lt;.*&gt;")  = "AB"
4992
     * StringUtils.removeAll("ABCabc123abc", "[a-z]")     = "ABC123"
4993
     * </pre>
4994
     *
4995
     * @param text  text to remove from, may be null
4996
     * @param regex  the regular expression to which this string is to be matched
4997
     * @return  the text with any removes processed,
4998
     *              {@code null} if null String input
4999
     *
5000
     * @throws  java.util.regex.PatternSyntaxException
5001
     *              if the regular expression's syntax is invalid
5002
     *
5003
     * @see #replaceAll(String, String, String)
5004
     * @see #removePattern(String, String)
5005
     * @see String#replaceAll(String, String)
5006
     * @see java.util.regex.Pattern
5007
     * @see java.util.regex.Pattern#DOTALL
5008
     * @since 3.5
5009
     */
5010
    public static String removeAll(final String text, final String regex) {
5011 1 1. removeAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceAll(text, regex, StringUtils.EMPTY);
5012
    }
5013
5014
    /**
5015
     * <p>Removes the first substring of the text string that matches the given regular expression.</p>
5016
     *
5017
     * This method is a {@code null} safe equivalent to:
5018
     * <ul>
5019
     *  <li>{@code text.replaceFirst(regex, StringUtils.EMPTY)}</li>
5020
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceFirst(StringUtils.EMPTY)}</li>
5021
     * </ul>
5022
     *
5023
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5024
     *
5025
     * <p>The {@link Pattern#DOTALL} option is NOT automatically added.
5026
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5027
     * DOTALL is also know as single-line mode in Perl.</p>
5028
     *
5029
     * <pre>
5030
     * StringUtils.removeFirst(null, *)      = null
5031
     * StringUtils.removeFirst("any", null)  = "any"
5032
     * StringUtils.removeFirst("any", "")    = "any"
5033
     * StringUtils.removeFirst("any", ".*")  = ""
5034
     * StringUtils.removeFirst("any", ".+")  = ""
5035
     * StringUtils.removeFirst("abc", ".?")  = "bc"
5036
     * StringUtils.removeFirst("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")      = "A\n&lt;__&gt;B"
5037
     * StringUtils.removeFirst("A&lt;__&gt;\n&lt;__&gt;B", "(?s)&lt;.*&gt;")  = "AB"
5038
     * StringUtils.removeFirst("ABCabc123", "[a-z]")          = "ABCbc123"
5039
     * StringUtils.removeFirst("ABCabc123abc", "[a-z]+")      = "ABC123abc"
5040
     * </pre>
5041
     *
5042
     * @param text  text to remove from, may be null
5043
     * @param regex  the regular expression to which this string is to be matched
5044
     * @return  the text with the first replacement processed,
5045
     *              {@code null} if null String input
5046
     *
5047
     * @throws  java.util.regex.PatternSyntaxException
5048
     *              if the regular expression's syntax is invalid
5049
     *
5050
     * @see #replaceFirst(String, String, String)
5051
     * @see String#replaceFirst(String, String)
5052
     * @see java.util.regex.Pattern
5053
     * @see java.util.regex.Pattern#DOTALL
5054
     * @since 3.5
5055
     */
5056
    public static String removeFirst(final String text, final String regex) {
5057 1 1. removeFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceFirst(text, regex, StringUtils.EMPTY);
5058
    }
5059
5060
    // Replacing
5061
    //-----------------------------------------------------------------------
5062
    /**
5063
     * <p>Replaces a String with another String inside a larger String, once.</p>
5064
     *
5065
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5066
     *
5067
     * <pre>
5068
     * StringUtils.replaceOnce(null, *, *)        = null
5069
     * StringUtils.replaceOnce("", *, *)          = ""
5070
     * StringUtils.replaceOnce("any", null, *)    = "any"
5071
     * StringUtils.replaceOnce("any", *, null)    = "any"
5072
     * StringUtils.replaceOnce("any", "", *)      = "any"
5073
     * StringUtils.replaceOnce("aba", "a", null)  = "aba"
5074
     * StringUtils.replaceOnce("aba", "a", "")    = "ba"
5075
     * StringUtils.replaceOnce("aba", "a", "z")   = "zba"
5076
     * </pre>
5077
     *
5078
     * @see #replace(String text, String searchString, String replacement, int max)
5079
     * @param text  text to search and replace in, may be null
5080
     * @param searchString  the String to search for, may be null
5081
     * @param replacement  the String to replace with, may be null
5082
     * @return the text with any replacements processed,
5083
     *  {@code null} if null String input
5084
     */
5085
    public static String replaceOnce(final String text, final String searchString, final String replacement) {
5086 1 1. replaceOnce : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnce to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, 1);
5087
    }
5088
5089
    /**
5090
     * <p>Case insensitively replaces a String with another String inside a larger String, once.</p>
5091
     *
5092
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5093
     *
5094
     * <pre>
5095
     * StringUtils.replaceOnceIgnoreCase(null, *, *)        = null
5096
     * StringUtils.replaceOnceIgnoreCase("", *, *)          = ""
5097
     * StringUtils.replaceOnceIgnoreCase("any", null, *)    = "any"
5098
     * StringUtils.replaceOnceIgnoreCase("any", *, null)    = "any"
5099
     * StringUtils.replaceOnceIgnoreCase("any", "", *)      = "any"
5100
     * StringUtils.replaceOnceIgnoreCase("aba", "a", null)  = "aba"
5101
     * StringUtils.replaceOnceIgnoreCase("aba", "a", "")    = "ba"
5102
     * StringUtils.replaceOnceIgnoreCase("aba", "a", "z")   = "zba"
5103
     * StringUtils.replaceOnceIgnoreCase("FoOFoofoo", "foo", "") = "Foofoo"
5104
     * </pre>
5105
     *
5106
     * @see #replaceIgnoreCase(String text, String searchString, String replacement, int max)
5107
     * @param text  text to search and replace in, may be null
5108
     * @param searchString  the String to search for (case insensitive), may be null
5109
     * @param replacement  the String to replace with, may be null
5110
     * @return the text with any replacements processed,
5111
     *  {@code null} if null String input
5112
     * @since 3.5
5113
     */
5114
    public static String replaceOnceIgnoreCase(final String text, final String searchString, final String replacement) {
5115 1 1. replaceOnceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceIgnoreCase(text, searchString, replacement, 1);
5116
    }
5117
5118
    /**
5119
     * <p>Replaces each substring of the source String that matches the given regular expression with the given
5120
     * replacement using the {@link Pattern#DOTALL} option. DOTALL is also know as single-line mode in Perl.</p>
5121
     *
5122
     * This call is a {@code null} safe equivalent to:
5123
     * <ul>
5124
     * <li>{@code source.replaceAll(&quot;(?s)&quot; + regex, replacement)}</li>
5125
     * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(replacement)}</li>
5126
     * </ul>
5127
     *
5128
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5129
     *
5130
     * <pre>
5131
     * StringUtils.replacePattern(null, *, *)       = null
5132
     * StringUtils.replacePattern("any", null, *)   = "any"
5133
     * StringUtils.replacePattern("any", *, null)   = "any"
5134
     * StringUtils.replacePattern("", "", "zzz")    = "zzz"
5135
     * StringUtils.replacePattern("", ".*", "zzz")  = "zzz"
5136
     * StringUtils.replacePattern("", ".+", "zzz")  = ""
5137
     * StringUtils.replacePattern("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")       = "z"
5138
     * StringUtils.replacePattern("ABCabc123", "[a-z]", "_")       = "ABC___123"
5139
     * StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "_")  = "ABC_123"
5140
     * StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "")   = "ABC123"
5141
     * StringUtils.replacePattern("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum_dolor_sit"
5142
     * </pre>
5143
     *
5144
     * @param source
5145
     *            the source string
5146
     * @param regex
5147
     *            the regular expression to which this string is to be matched
5148
     * @param replacement
5149
     *            the string to be substituted for each match
5150
     * @return The resulting {@code String}
5151
     * @see #replaceAll(String, String, String)
5152
     * @see String#replaceAll(String, String)
5153
     * @see Pattern#DOTALL
5154
     * @since 3.2
5155
     * @since 3.5 Changed {@code null} reference passed to this method is a no-op.
5156
     */
5157
    public static String replacePattern(final String source, final String regex, final String replacement) {
5158 3 1. replacePattern : negated conditional → KILLED
2. replacePattern : negated conditional → KILLED
3. replacePattern : negated conditional → KILLED
        if (source == null || regex == null || replacement == null) {
5159 1 1. replacePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return source;
5160
        }
5161 1 1. replacePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(replacement);
5162
    }
5163
5164
    /**
5165
     * <p>Removes each substring of the source String that matches the given regular expression using the DOTALL option.
5166
     * </p>
5167
     *
5168
     * This call is a {@code null} safe equivalent to:
5169
     * <ul>
5170
     * <li>{@code source.replaceAll(&quot;(?s)&quot; + regex, StringUtils.EMPTY)}</li>
5171
     * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(StringUtils.EMPTY)}</li>
5172
     * </ul>
5173
     *
5174
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5175
     *
5176
     * <pre>
5177
     * StringUtils.removePattern(null, *)       = null
5178
     * StringUtils.removePattern("any", null)   = "any"
5179
     * StringUtils.removePattern("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")  = "AB"
5180
     * StringUtils.removePattern("ABCabc123", "[a-z]")    = "ABC123"
5181
     * </pre>
5182
     *
5183
     * @param source
5184
     *            the source string
5185
     * @param regex
5186
     *            the regular expression to which this string is to be matched
5187
     * @return The resulting {@code String}
5188
     * @see #replacePattern(String, String, String)
5189
     * @see String#replaceAll(String, String)
5190
     * @see Pattern#DOTALL
5191
     * @since 3.2
5192
     * @since 3.5 Changed {@code null} reference passed to this method is a no-op.
5193
     */
5194
    public static String removePattern(final String source, final String regex) {
5195 1 1. removePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::removePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replacePattern(source, regex, StringUtils.EMPTY);
5196
    }
5197
5198
    /**
5199
     * <p>Replaces each substring of the text String that matches the given regular expression
5200
     * with the given replacement.</p>
5201
     *
5202
     * This method is a {@code null} safe equivalent to:
5203
     * <ul>
5204
     *  <li>{@code text.replaceAll(regex, replacement)}</li>
5205
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceAll(replacement)}</li>
5206
     * </ul>
5207
     *
5208
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5209
     *
5210
     * <p>Unlike in the {@link #replacePattern(String, String, String)} method, the {@link Pattern#DOTALL} option
5211
     * is NOT automatically added.
5212
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5213
     * DOTALL is also know as single-line mode in Perl.</p>
5214
     *
5215
     * <pre>
5216
     * StringUtils.replaceAll(null, *, *)       = null
5217
     * StringUtils.replaceAll("any", null, *)   = "any"
5218
     * StringUtils.replaceAll("any", *, null)   = "any"
5219
     * StringUtils.replaceAll("", "", "zzz")    = "zzz"
5220
     * StringUtils.replaceAll("", ".*", "zzz")  = "zzz"
5221
     * StringUtils.replaceAll("", ".+", "zzz")  = ""
5222
     * StringUtils.replaceAll("abc", "", "ZZ")  = "ZZaZZbZZcZZ"
5223
     * StringUtils.replaceAll("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")      = "z\nz"
5224
     * StringUtils.replaceAll("&lt;__&gt;\n&lt;__&gt;", "(?s)&lt;.*&gt;", "z")  = "z"
5225
     * StringUtils.replaceAll("ABCabc123", "[a-z]", "_")       = "ABC___123"
5226
     * StringUtils.replaceAll("ABCabc123", "[^A-Z0-9]+", "_")  = "ABC_123"
5227
     * StringUtils.replaceAll("ABCabc123", "[^A-Z0-9]+", "")   = "ABC123"
5228
     * StringUtils.replaceAll("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum_dolor_sit"
5229
     * </pre>
5230
     *
5231
     * @param text  text to search and replace in, may be null
5232
     * @param regex  the regular expression to which this string is to be matched
5233
     * @param replacement  the string to be substituted for each match
5234
     * @return  the text with any replacements processed,
5235
     *              {@code null} if null String input
5236
     *
5237
     * @throws  java.util.regex.PatternSyntaxException
5238
     *              if the regular expression's syntax is invalid
5239
     *
5240
     * @see #replacePattern(String, String, String)
5241
     * @see String#replaceAll(String, String)
5242
     * @see java.util.regex.Pattern
5243
     * @see java.util.regex.Pattern#DOTALL
5244
     * @since 3.5
5245
     */
5246
    public static String replaceAll(final String text, final String regex, final String replacement) {
5247 3 1. replaceAll : negated conditional → KILLED
2. replaceAll : negated conditional → KILLED
3. replaceAll : negated conditional → KILLED
        if (text == null || regex == null|| replacement == null ) {
5248 1 1. replaceAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5249
        }
5250 1 1. replaceAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return text.replaceAll(regex, replacement);
5251
    }
5252
5253
    /**
5254
     * <p>Replaces the first substring of the text string that matches the given regular expression
5255
     * with the given replacement.</p>
5256
     *
5257
     * This method is a {@code null} safe equivalent to:
5258
     * <ul>
5259
     *  <li>{@code text.replaceFirst(regex, replacement)}</li>
5260
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceFirst(replacement)}</li>
5261
     * </ul>
5262
     *
5263
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5264
     *
5265
     * <p>The {@link Pattern#DOTALL} option is NOT automatically added.
5266
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5267
     * DOTALL is also know as single-line mode in Perl.</p>
5268
     *
5269
     * <pre>
5270
     * StringUtils.replaceFirst(null, *, *)       = null
5271
     * StringUtils.replaceFirst("any", null, *)   = "any"
5272
     * StringUtils.replaceFirst("any", *, null)   = "any"
5273
     * StringUtils.replaceFirst("", "", "zzz")    = "zzz"
5274
     * StringUtils.replaceFirst("", ".*", "zzz")  = "zzz"
5275
     * StringUtils.replaceFirst("", ".+", "zzz")  = ""
5276
     * StringUtils.replaceFirst("abc", "", "ZZ")  = "ZZabc"
5277
     * StringUtils.replaceFirst("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")      = "z\n&lt;__&gt;"
5278
     * StringUtils.replaceFirst("&lt;__&gt;\n&lt;__&gt;", "(?s)&lt;.*&gt;", "z")  = "z"
5279
     * StringUtils.replaceFirst("ABCabc123", "[a-z]", "_")          = "ABC_bc123"
5280
     * StringUtils.replaceFirst("ABCabc123abc", "[^A-Z0-9]+", "_")  = "ABC_123abc"
5281
     * StringUtils.replaceFirst("ABCabc123abc", "[^A-Z0-9]+", "")   = "ABC123abc"
5282
     * StringUtils.replaceFirst("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum  dolor   sit"
5283
     * </pre>
5284
     *
5285
     * @param text  text to search and replace in, may be null
5286
     * @param regex  the regular expression to which this string is to be matched
5287
     * @param replacement  the string to be substituted for the first match
5288
     * @return  the text with the first replacement processed,
5289
     *              {@code null} if null String input
5290
     *
5291
     * @throws  java.util.regex.PatternSyntaxException
5292
     *              if the regular expression's syntax is invalid
5293
     *
5294
     * @see String#replaceFirst(String, String)
5295
     * @see java.util.regex.Pattern
5296
     * @see java.util.regex.Pattern#DOTALL
5297
     * @since 3.5
5298
     */
5299
    public static String replaceFirst(final String text, final String regex, final String replacement) {
5300 3 1. replaceFirst : negated conditional → KILLED
2. replaceFirst : negated conditional → KILLED
3. replaceFirst : negated conditional → KILLED
        if (text == null || regex == null|| replacement == null ) {
5301 1 1. replaceFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5302
        }
5303 1 1. replaceFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return text.replaceFirst(regex, replacement);
5304
    }
5305
5306
    /**
5307
     * <p>Replaces all occurrences of a String within another String.</p>
5308
     *
5309
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5310
     *
5311
     * <pre>
5312
     * StringUtils.replace(null, *, *)        = null
5313
     * StringUtils.replace("", *, *)          = ""
5314
     * StringUtils.replace("any", null, *)    = "any"
5315
     * StringUtils.replace("any", *, null)    = "any"
5316
     * StringUtils.replace("any", "", *)      = "any"
5317
     * StringUtils.replace("aba", "a", null)  = "aba"
5318
     * StringUtils.replace("aba", "a", "")    = "b"
5319
     * StringUtils.replace("aba", "a", "z")   = "zbz"
5320
     * </pre>
5321
     *
5322
     * @see #replace(String text, String searchString, String replacement, int max)
5323
     * @param text  text to search and replace in, may be null
5324
     * @param searchString  the String to search for, may be null
5325
     * @param replacement  the String to replace it with, may be null
5326
     * @return the text with any replacements processed,
5327
     *  {@code null} if null String input
5328
     */
5329
    public static String replace(final String text, final String searchString, final String replacement) {
5330 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, -1);
5331
    }
5332
5333
    /**
5334
    * <p>Case insensitively replaces all occurrences of a String within another String.</p>
5335
    *
5336
    * <p>A {@code null} reference passed to this method is a no-op.</p>
5337
    *
5338
    * <pre>
5339
    * StringUtils.replaceIgnoreCase(null, *, *)        = null
5340
    * StringUtils.replaceIgnoreCase("", *, *)          = ""
5341
    * StringUtils.replaceIgnoreCase("any", null, *)    = "any"
5342
    * StringUtils.replaceIgnoreCase("any", *, null)    = "any"
5343
    * StringUtils.replaceIgnoreCase("any", "", *)      = "any"
5344
    * StringUtils.replaceIgnoreCase("aba", "a", null)  = "aba"
5345
    * StringUtils.replaceIgnoreCase("abA", "A", "")    = "b"
5346
    * StringUtils.replaceIgnoreCase("aba", "A", "z")   = "zbz"
5347
    * </pre>
5348
    *
5349
    * @see #replaceIgnoreCase(String text, String searchString, String replacement, int max)
5350
    * @param text  text to search and replace in, may be null
5351
    * @param searchString  the String to search for (case insensitive), may be null
5352
    * @param replacement  the String to replace it with, may be null
5353
    * @return the text with any replacements processed,
5354
    *  {@code null} if null String input
5355
    * @since 3.5
5356
    */
5357
   public static String replaceIgnoreCase(final String text, final String searchString, final String replacement) {
5358 1 1. replaceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
       return replaceIgnoreCase(text, searchString, replacement, -1);
5359
   }
5360
5361
    /**
5362
     * <p>Replaces a String with another String inside a larger String,
5363
     * for the first {@code max} values of the search String.</p>
5364
     *
5365
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5366
     *
5367
     * <pre>
5368
     * StringUtils.replace(null, *, *, *)         = null
5369
     * StringUtils.replace("", *, *, *)           = ""
5370
     * StringUtils.replace("any", null, *, *)     = "any"
5371
     * StringUtils.replace("any", *, null, *)     = "any"
5372
     * StringUtils.replace("any", "", *, *)       = "any"
5373
     * StringUtils.replace("any", *, *, 0)        = "any"
5374
     * StringUtils.replace("abaa", "a", null, -1) = "abaa"
5375
     * StringUtils.replace("abaa", "a", "", -1)   = "b"
5376
     * StringUtils.replace("abaa", "a", "z", 0)   = "abaa"
5377
     * StringUtils.replace("abaa", "a", "z", 1)   = "zbaa"
5378
     * StringUtils.replace("abaa", "a", "z", 2)   = "zbza"
5379
     * StringUtils.replace("abaa", "a", "z", -1)  = "zbzz"
5380
     * </pre>
5381
     *
5382
     * @param text  text to search and replace in, may be null
5383
     * @param searchString  the String to search for, may be null
5384
     * @param replacement  the String to replace it with, may be null
5385
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5386
     * @return the text with any replacements processed,
5387
     *  {@code null} if null String input
5388
     */
5389
    public static String replace(final String text, final String searchString, final String replacement, final int max) {
5390 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, max, false);
5391
    }
5392
5393
    /**
5394
     * <p>Replaces a String with another String inside a larger String,
5395
     * for the first {@code max} values of the search String, 
5396
     * case sensitively/insensisitively based on {@code ignoreCase} value.</p>
5397
     *
5398
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5399
     *
5400
     * <pre>
5401
     * StringUtils.replace(null, *, *, *, false)         = null
5402
     * StringUtils.replace("", *, *, *, false)           = ""
5403
     * StringUtils.replace("any", null, *, *, false)     = "any"
5404
     * StringUtils.replace("any", *, null, *, false)     = "any"
5405
     * StringUtils.replace("any", "", *, *, false)       = "any"
5406
     * StringUtils.replace("any", *, *, 0, false)        = "any"
5407
     * StringUtils.replace("abaa", "a", null, -1, false) = "abaa"
5408
     * StringUtils.replace("abaa", "a", "", -1, false)   = "b"
5409
     * StringUtils.replace("abaa", "a", "z", 0, false)   = "abaa"
5410
     * StringUtils.replace("abaa", "A", "z", 1, false)   = "abaa"
5411
     * StringUtils.replace("abaa", "A", "z", 1, true)   = "zbaa"
5412
     * StringUtils.replace("abAa", "a", "z", 2, true)   = "zbza"
5413
     * StringUtils.replace("abAa", "a", "z", -1, true)  = "zbzz"
5414
     * </pre>
5415
     *
5416
     * @param text  text to search and replace in, may be null
5417
     * @param searchString  the String to search for (case insensitive), may be null
5418
     * @param replacement  the String to replace it with, may be null
5419
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5420
     * @param ignoreCase if true replace is case insensitive, otherwise case sensitive
5421
     * @return the text with any replacements processed,
5422
     *  {@code null} if null String input
5423
     */
5424
     private static String replace(final String text, String searchString, final String replacement, int max, final boolean ignoreCase) {
5425 4 1. replace : negated conditional → KILLED
2. replace : negated conditional → KILLED
3. replace : negated conditional → KILLED
4. replace : negated conditional → KILLED
         if (isEmpty(text) || isEmpty(searchString) || replacement == null || max == 0) {
5426 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
             return text;
5427
         }
5428
         String searchText = text;
5429 1 1. replace : negated conditional → KILLED
         if (ignoreCase) {
5430
             searchText = text.toLowerCase();
5431
             searchString = searchString.toLowerCase();
5432
         }
5433
         int start = 0;
5434
         int end = searchText.indexOf(searchString, start);
5435 1 1. replace : negated conditional → KILLED
         if (end == INDEX_NOT_FOUND) {
5436 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
             return text;
5437
         }
5438
         final int replLength = searchString.length();
5439 1 1. replace : Replaced integer subtraction with addition → SURVIVED
         int increase = replacement.length() - replLength;
5440 2 1. replace : changed conditional boundary → SURVIVED
2. replace : negated conditional → KILLED
         increase = increase < 0 ? 0 : increase;
5441 5 1. replace : changed conditional boundary → SURVIVED
2. replace : changed conditional boundary → SURVIVED
3. replace : Replaced integer multiplication with division → SURVIVED
4. replace : negated conditional → SURVIVED
5. replace : negated conditional → SURVIVED
         increase *= max < 0 ? 16 : max > 64 ? 64 : max;
5442 1 1. replace : Replaced integer addition with subtraction → KILLED
         final StringBuilder buf = new StringBuilder(text.length() + increase);
5443 1 1. replace : negated conditional → KILLED
         while (end != INDEX_NOT_FOUND) {
5444
             buf.append(text.substring(start, end)).append(replacement);
5445 1 1. replace : Replaced integer addition with subtraction → KILLED
             start = end + replLength;
5446 2 1. replace : Changed increment from -1 to 1 → KILLED
2. replace : negated conditional → KILLED
             if (--max == 0) {
5447
                 break;
5448
             }
5449
             end = searchText.indexOf(searchString, start);
5450
         }
5451
         buf.append(text.substring(start));
5452 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
         return buf.toString();
5453
     }
5454
5455
    /**
5456
     * <p>Case insensitively replaces a String with another String inside a larger String,
5457
     * for the first {@code max} values of the search String.</p>
5458
     *
5459
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5460
     *
5461
     * <pre>
5462
     * StringUtils.replaceIgnoreCase(null, *, *, *)         = null
5463
     * StringUtils.replaceIgnoreCase("", *, *, *)           = ""
5464
     * StringUtils.replaceIgnoreCase("any", null, *, *)     = "any"
5465
     * StringUtils.replaceIgnoreCase("any", *, null, *)     = "any"
5466
     * StringUtils.replaceIgnoreCase("any", "", *, *)       = "any"
5467
     * StringUtils.replaceIgnoreCase("any", *, *, 0)        = "any"
5468
     * StringUtils.replaceIgnoreCase("abaa", "a", null, -1) = "abaa"
5469
     * StringUtils.replaceIgnoreCase("abaa", "a", "", -1)   = "b"
5470
     * StringUtils.replaceIgnoreCase("abaa", "a", "z", 0)   = "abaa"
5471
     * StringUtils.replaceIgnoreCase("abaa", "A", "z", 1)   = "zbaa"
5472
     * StringUtils.replaceIgnoreCase("abAa", "a", "z", 2)   = "zbza"
5473
     * StringUtils.replaceIgnoreCase("abAa", "a", "z", -1)  = "zbzz"
5474
     * </pre>
5475
     *
5476
     * @param text  text to search and replace in, may be null
5477
     * @param searchString  the String to search for (case insensitive), may be null
5478
     * @param replacement  the String to replace it with, may be null
5479
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5480
     * @return the text with any replacements processed,
5481
     *  {@code null} if null String input
5482
     * @since 3.5
5483
     */
5484
    public static String replaceIgnoreCase(final String text, final String searchString, final String replacement, final int max) {
5485 1 1. replaceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, max, true);
5486
    }
5487
5488
    /**
5489
     * <p>
5490
     * Replaces all occurrences of Strings within another String.
5491
     * </p>
5492
     *
5493
     * <p>
5494
     * A {@code null} reference passed to this method is a no-op, or if
5495
     * any "search string" or "string to replace" is null, that replace will be
5496
     * ignored. This will not repeat. For repeating replaces, call the
5497
     * overloaded method.
5498
     * </p>
5499
     *
5500
     * <pre>
5501
     *  StringUtils.replaceEach(null, *, *)        = null
5502
     *  StringUtils.replaceEach("", *, *)          = ""
5503
     *  StringUtils.replaceEach("aba", null, null) = "aba"
5504
     *  StringUtils.replaceEach("aba", new String[0], null) = "aba"
5505
     *  StringUtils.replaceEach("aba", null, new String[0]) = "aba"
5506
     *  StringUtils.replaceEach("aba", new String[]{"a"}, null)  = "aba"
5507
     *  StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""})  = "b"
5508
     *  StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"})  = "aba"
5509
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"})  = "wcte"
5510
     *  (example of how it does not repeat)
5511
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"})  = "dcte"
5512
     * </pre>
5513
     *
5514
     * @param text
5515
     *            text to search and replace in, no-op if null
5516
     * @param searchList
5517
     *            the Strings to search for, no-op if null
5518
     * @param replacementList
5519
     *            the Strings to replace them with, no-op if null
5520
     * @return the text with any replacements processed, {@code null} if
5521
     *         null String input
5522
     * @throws IllegalArgumentException
5523
     *             if the lengths of the arrays are not the same (null is ok,
5524
     *             and/or size 0)
5525
     * @since 2.4
5526
     */
5527
    public static String replaceEach(final String text, final String[] searchList, final String[] replacementList) {
5528 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(text, searchList, replacementList, false, 0);
5529
    }
5530
5531
    /**
5532
     * <p>
5533
     * Replaces all occurrences of Strings within another String.
5534
     * </p>
5535
     *
5536
     * <p>
5537
     * A {@code null} reference passed to this method is a no-op, or if
5538
     * any "search string" or "string to replace" is null, that replace will be
5539
     * ignored.
5540
     * </p>
5541
     *
5542
     * <pre>
5543
     *  StringUtils.replaceEachRepeatedly(null, *, *) = null
5544
     *  StringUtils.replaceEachRepeatedly("", *, *) = ""
5545
     *  StringUtils.replaceEachRepeatedly("aba", null, null) = "aba"
5546
     *  StringUtils.replaceEachRepeatedly("aba", new String[0], null) = "aba"
5547
     *  StringUtils.replaceEachRepeatedly("aba", null, new String[0]) = "aba"
5548
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{"a"}, null) = "aba"
5549
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{"a"}, new String[]{""}) = "b"
5550
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{null}, new String[]{"a"}) = "aba"
5551
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte"
5552
     *  (example of how it repeats)
5553
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "tcte"
5554
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}) = IllegalStateException
5555
     * </pre>
5556
     *
5557
     * @param text
5558
     *            text to search and replace in, no-op if null
5559
     * @param searchList
5560
     *            the Strings to search for, no-op if null
5561
     * @param replacementList
5562
     *            the Strings to replace them with, no-op if null
5563
     * @return the text with any replacements processed, {@code null} if
5564
     *         null String input
5565
     * @throws IllegalStateException
5566
     *             if the search is repeating and there is an endless loop due
5567
     *             to outputs of one being inputs to another
5568
     * @throws IllegalArgumentException
5569
     *             if the lengths of the arrays are not the same (null is ok,
5570
     *             and/or size 0)
5571
     * @since 2.4
5572
     */
5573
    public static String replaceEachRepeatedly(final String text, final String[] searchList, final String[] replacementList) {
5574
        // timeToLive should be 0 if not used or nothing to replace, else it's
5575
        // the length of the replace array
5576 1 1. replaceEachRepeatedly : negated conditional → KILLED
        final int timeToLive = searchList == null ? 0 : searchList.length;
5577 1 1. replaceEachRepeatedly : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEachRepeatedly to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(text, searchList, replacementList, true, timeToLive);
5578
    }
5579
5580
    /**
5581
     * <p>
5582
     * Replace all occurrences of Strings within another String.
5583
     * This is a private recursive helper method for {@link #replaceEachRepeatedly(String, String[], String[])} and
5584
     * {@link #replaceEach(String, String[], String[])}
5585
     * </p>
5586
     *
5587
     * <p>
5588
     * A {@code null} reference passed to this method is a no-op, or if
5589
     * any "search string" or "string to replace" is null, that replace will be
5590
     * ignored.
5591
     * </p>
5592
     *
5593
     * <pre>
5594
     *  StringUtils.replaceEach(null, *, *, *, *) = null
5595
     *  StringUtils.replaceEach("", *, *, *, *) = ""
5596
     *  StringUtils.replaceEach("aba", null, null, *, *) = "aba"
5597
     *  StringUtils.replaceEach("aba", new String[0], null, *, *) = "aba"
5598
     *  StringUtils.replaceEach("aba", null, new String[0], *, *) = "aba"
5599
     *  StringUtils.replaceEach("aba", new String[]{"a"}, null, *, *) = "aba"
5600
     *  StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""}, *, >=0) = "b"
5601
     *  StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"}, *, >=0) = "aba"
5602
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}, *, >=0) = "wcte"
5603
     *  (example of how it repeats)
5604
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, false, >=0) = "dcte"
5605
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, true, >=2) = "tcte"
5606
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}, *, *) = IllegalStateException
5607
     * </pre>
5608
     *
5609
     * @param text
5610
     *            text to search and replace in, no-op if null
5611
     * @param searchList
5612
     *            the Strings to search for, no-op if null
5613
     * @param replacementList
5614
     *            the Strings to replace them with, no-op if null
5615
     * @param repeat if true, then replace repeatedly
5616
     *       until there are no more possible replacements or timeToLive < 0
5617
     * @param timeToLive
5618
     *            if less than 0 then there is a circular reference and endless
5619
     *            loop
5620
     * @return the text with any replacements processed, {@code null} if
5621
     *         null String input
5622
     * @throws IllegalStateException
5623
     *             if the search is repeating and there is an endless loop due
5624
     *             to outputs of one being inputs to another
5625
     * @throws IllegalArgumentException
5626
     *             if the lengths of the arrays are not the same (null is ok,
5627
     *             and/or size 0)
5628
     * @since 2.4
5629
     */
5630
    private static String replaceEach(
5631
            final String text, final String[] searchList, final String[] replacementList, final boolean repeat, final int timeToLive) {
5632
5633
        // mchyzer Performance note: This creates very few new objects (one major goal)
5634
        // let me know if there are performance requests, we can create a harness to measure
5635
5636 6 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
4. replaceEach : negated conditional → KILLED
5. replaceEach : negated conditional → KILLED
6. replaceEach : negated conditional → KILLED
        if (text == null || text.isEmpty() || searchList == null ||
5637
                searchList.length == 0 || replacementList == null || replacementList.length == 0) {
5638 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5639
        }
5640
5641
        // if recursing, this shouldn't be less than 0
5642 2 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : negated conditional → KILLED
        if (timeToLive < 0) {
5643
            throw new IllegalStateException("Aborting to protect against StackOverflowError - " +
5644
                                            "output of one loop is the input of another");
5645
        }
5646
5647
        final int searchLength = searchList.length;
5648
        final int replacementLength = replacementList.length;
5649
5650
        // make sure lengths are ok, these need to be equal
5651 1 1. replaceEach : negated conditional → KILLED
        if (searchLength != replacementLength) {
5652
            throw new IllegalArgumentException("Search and Replace array lengths don't match: "
5653
                + searchLength
5654
                + " vs "
5655
                + replacementLength);
5656
        }
5657
5658
        // keep track of which still have matches
5659
        final boolean[] noMoreMatchesForReplIndex = new boolean[searchLength];
5660
5661
        // index on index that the match was found
5662
        int textIndex = -1;
5663
        int replaceIndex = -1;
5664
        int tempIndex = -1;
5665
5666
        // index of replace array that will replace the search string found
5667
        // NOTE: logic duplicated below START
5668 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
        for (int i = 0; i < searchLength; i++) {
5669 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
            if (noMoreMatchesForReplIndex[i] || searchList[i] == null ||
5670 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                    searchList[i].isEmpty() || replacementList[i] == null) {
5671
                continue;
5672
            }
5673
            tempIndex = text.indexOf(searchList[i]);
5674
5675
            // see if we need to keep searching for this
5676 1 1. replaceEach : negated conditional → KILLED
            if (tempIndex == -1) {
5677
                noMoreMatchesForReplIndex[i] = true;
5678
            } else {
5679 3 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
                if (textIndex == -1 || tempIndex < textIndex) {
5680
                    textIndex = tempIndex;
5681
                    replaceIndex = i;
5682
                }
5683
            }
5684
        }
5685
        // NOTE: logic mostly below END
5686
5687
        // no search strings found, we are done
5688 1 1. replaceEach : negated conditional → KILLED
        if (textIndex == -1) {
5689 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5690
        }
5691
5692
        int start = 0;
5693
5694
        // get a good guess on the size of the result buffer so it doesn't have to double if it goes over a bit
5695
        int increase = 0;
5696
5697
        // count the replacement text elements that are larger than their corresponding text being replaced
5698 3 1. replaceEach : negated conditional → SURVIVED
2. replaceEach : changed conditional boundary → KILLED
3. replaceEach : Changed increment from 1 to -1 → KILLED
        for (int i = 0; i < searchList.length; i++) {
5699 2 1. replaceEach : negated conditional → SURVIVED
2. replaceEach : negated conditional → KILLED
            if (searchList[i] == null || replacementList[i] == null) {
5700
                continue;
5701
            }
5702 1 1. replaceEach : Replaced integer subtraction with addition → SURVIVED
            final int greater = replacementList[i].length() - searchList[i].length();
5703 2 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → SURVIVED
            if (greater > 0) {
5704 2 1. replaceEach : Replaced integer multiplication with division → SURVIVED
2. replaceEach : Replaced integer addition with subtraction → SURVIVED
                increase += 3 * greater; // assume 3 matches
5705
            }
5706
        }
5707
        // have upper-bound at 20% increase, then let Java take over
5708 1 1. replaceEach : Replaced integer division with multiplication → SURVIVED
        increase = Math.min(increase, text.length() / 5);
5709
5710 1 1. replaceEach : Replaced integer addition with subtraction → SURVIVED
        final StringBuilder buf = new StringBuilder(text.length() + increase);
5711
5712 1 1. replaceEach : negated conditional → KILLED
        while (textIndex != -1) {
5713
5714 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
            for (int i = start; i < textIndex; i++) {
5715
                buf.append(text.charAt(i));
5716
            }
5717
            buf.append(replacementList[replaceIndex]);
5718
5719 1 1. replaceEach : Replaced integer addition with subtraction → KILLED
            start = textIndex + searchList[replaceIndex].length();
5720
5721
            textIndex = -1;
5722
            replaceIndex = -1;
5723
            tempIndex = -1;
5724
            // find the next earliest match
5725
            // NOTE: logic mostly duplicated above START
5726 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
            for (int i = 0; i < searchLength; i++) {
5727 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                if (noMoreMatchesForReplIndex[i] || searchList[i] == null ||
5728 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                        searchList[i].isEmpty() || replacementList[i] == null) {
5729
                    continue;
5730
                }
5731
                tempIndex = text.indexOf(searchList[i], start);
5732
5733
                // see if we need to keep searching for this
5734 1 1. replaceEach : negated conditional → KILLED
                if (tempIndex == -1) {
5735
                    noMoreMatchesForReplIndex[i] = true;
5736
                } else {
5737 3 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
                    if (textIndex == -1 || tempIndex < textIndex) {
5738
                        textIndex = tempIndex;
5739
                        replaceIndex = i;
5740
                    }
5741
                }
5742
            }
5743
            // NOTE: logic duplicated above END
5744
5745
        }
5746
        final int textLength = text.length();
5747 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
        for (int i = start; i < textLength; i++) {
5748
            buf.append(text.charAt(i));
5749
        }
5750
        final String result = buf.toString();
5751 1 1. replaceEach : negated conditional → KILLED
        if (!repeat) {
5752 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
5753
        }
5754
5755 2 1. replaceEach : Replaced integer subtraction with addition → KILLED
2. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(result, searchList, replacementList, repeat, timeToLive - 1);
5756
    }
5757
5758
    // Replace, character based
5759
    //-----------------------------------------------------------------------
5760
    /**
5761
     * <p>Replaces all occurrences of a character in a String with another.
5762
     * This is a null-safe version of {@link String#replace(char, char)}.</p>
5763
     *
5764
     * <p>A {@code null} string input returns {@code null}.
5765
     * An empty ("") string input returns an empty string.</p>
5766
     *
5767
     * <pre>
5768
     * StringUtils.replaceChars(null, *, *)        = null
5769
     * StringUtils.replaceChars("", *, *)          = ""
5770
     * StringUtils.replaceChars("abcba", 'b', 'y') = "aycya"
5771
     * StringUtils.replaceChars("abcba", 'z', 'y') = "abcba"
5772
     * </pre>
5773
     *
5774
     * @param str  String to replace characters in, may be null
5775
     * @param searchChar  the character to search for, may be null
5776
     * @param replaceChar  the character to replace, may be null
5777
     * @return modified String, {@code null} if null string input
5778
     * @since 2.0
5779
     */
5780
    public static String replaceChars(final String str, final char searchChar, final char replaceChar) {
5781 1 1. replaceChars : negated conditional → KILLED
        if (str == null) {
5782 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
5783
        }
5784 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.replace(searchChar, replaceChar);
5785
    }
5786
5787
    /**
5788
     * <p>Replaces multiple characters in a String in one go.
5789
     * This method can also be used to delete characters.</p>
5790
     *
5791
     * <p>For example:<br>
5792
     * <code>replaceChars(&quot;hello&quot;, &quot;ho&quot;, &quot;jy&quot;) = jelly</code>.</p>
5793
     *
5794
     * <p>A {@code null} string input returns {@code null}.
5795
     * An empty ("") string input returns an empty string.
5796
     * A null or empty set of search characters returns the input string.</p>
5797
     *
5798
     * <p>The length of the search characters should normally equal the length
5799
     * of the replace characters.
5800
     * If the search characters is longer, then the extra search characters
5801
     * are deleted.
5802
     * If the search characters is shorter, then the extra replace characters
5803
     * are ignored.</p>
5804
     *
5805
     * <pre>
5806
     * StringUtils.replaceChars(null, *, *)           = null
5807
     * StringUtils.replaceChars("", *, *)             = ""
5808
     * StringUtils.replaceChars("abc", null, *)       = "abc"
5809
     * StringUtils.replaceChars("abc", "", *)         = "abc"
5810
     * StringUtils.replaceChars("abc", "b", null)     = "ac"
5811
     * StringUtils.replaceChars("abc", "b", "")       = "ac"
5812
     * StringUtils.replaceChars("abcba", "bc", "yz")  = "ayzya"
5813
     * StringUtils.replaceChars("abcba", "bc", "y")   = "ayya"
5814
     * StringUtils.replaceChars("abcba", "bc", "yzx") = "ayzya"
5815
     * </pre>
5816
     *
5817
     * @param str  String to replace characters in, may be null
5818
     * @param searchChars  a set of characters to search for, may be null
5819
     * @param replaceChars  a set of characters to replace, may be null
5820
     * @return modified String, {@code null} if null string input
5821
     * @since 2.0
5822
     */
5823
    public static String replaceChars(final String str, final String searchChars, String replaceChars) {
5824 2 1. replaceChars : negated conditional → KILLED
2. replaceChars : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(searchChars)) {
5825 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5826
        }
5827 1 1. replaceChars : negated conditional → KILLED
        if (replaceChars == null) {
5828
            replaceChars = EMPTY;
5829
        }
5830
        boolean modified = false;
5831
        final int replaceCharsLength = replaceChars.length();
5832
        final int strLength = str.length();
5833
        final StringBuilder buf = new StringBuilder(strLength);
5834 3 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : Changed increment from 1 to -1 → KILLED
3. replaceChars : negated conditional → KILLED
        for (int i = 0; i < strLength; i++) {
5835
            final char ch = str.charAt(i);
5836
            final int index = searchChars.indexOf(ch);
5837 2 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : negated conditional → KILLED
            if (index >= 0) {
5838
                modified = true;
5839 2 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : negated conditional → KILLED
                if (index < replaceCharsLength) {
5840
                    buf.append(replaceChars.charAt(index));
5841
                }
5842
            } else {
5843
                buf.append(ch);
5844
            }
5845
        }
5846 1 1. replaceChars : negated conditional → KILLED
        if (modified) {
5847 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return buf.toString();
5848
        }
5849 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
5850
    }
5851
5852
    // Overlay
5853
    //-----------------------------------------------------------------------
5854
    /**
5855
     * <p>Overlays part of a String with another String.</p>
5856
     *
5857
     * <p>A {@code null} string input returns {@code null}.
5858
     * A negative index is treated as zero.
5859
     * An index greater than the string length is treated as the string length.
5860
     * The start index is always the smaller of the two indices.</p>
5861
     *
5862
     * <pre>
5863
     * StringUtils.overlay(null, *, *, *)            = null
5864
     * StringUtils.overlay("", "abc", 0, 0)          = "abc"
5865
     * StringUtils.overlay("abcdef", null, 2, 4)     = "abef"
5866
     * StringUtils.overlay("abcdef", "", 2, 4)       = "abef"
5867
     * StringUtils.overlay("abcdef", "", 4, 2)       = "abef"
5868
     * StringUtils.overlay("abcdef", "zzzz", 2, 4)   = "abzzzzef"
5869
     * StringUtils.overlay("abcdef", "zzzz", 4, 2)   = "abzzzzef"
5870
     * StringUtils.overlay("abcdef", "zzzz", -1, 4)  = "zzzzef"
5871
     * StringUtils.overlay("abcdef", "zzzz", 2, 8)   = "abzzzz"
5872
     * StringUtils.overlay("abcdef", "zzzz", -2, -3) = "zzzzabcdef"
5873
     * StringUtils.overlay("abcdef", "zzzz", 8, 10)  = "abcdefzzzz"
5874
     * </pre>
5875
     *
5876
     * @param str  the String to do overlaying in, may be null
5877
     * @param overlay  the String to overlay, may be null
5878
     * @param start  the position to start overlaying at
5879
     * @param end  the position to stop overlaying before
5880
     * @return overlayed String, {@code null} if null String input
5881
     * @since 2.0
5882
     */
5883
    public static String overlay(final String str, String overlay, int start, int end) {
5884 1 1. overlay : negated conditional → KILLED
        if (str == null) {
5885 1 1. overlay : mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
5886
        }
5887 1 1. overlay : negated conditional → KILLED
        if (overlay == null) {
5888
            overlay = EMPTY;
5889
        }
5890
        final int len = str.length();
5891 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start < 0) {
5892
            start = 0;
5893
        }
5894 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start > len) {
5895
            start = len;
5896
        }
5897 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (end < 0) {
5898
            end = 0;
5899
        }
5900 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (end > len) {
5901
            end = len;
5902
        }
5903 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start > end) {
5904
            final int temp = start;
5905
            start = end;
5906
            end = temp;
5907
        }
5908 5 1. overlay : Replaced integer subtraction with addition → SURVIVED
2. overlay : Replaced integer addition with subtraction → KILLED
3. overlay : Replaced integer addition with subtraction → KILLED
4. overlay : Replaced integer addition with subtraction → KILLED
5. overlay : mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new StringBuilder(len + start - end + overlay.length() + 1)
5909
            .append(str.substring(0, start))
5910
            .append(overlay)
5911
            .append(str.substring(end))
5912
            .toString();
5913
    }
5914
5915
    // Chomping
5916
    //-----------------------------------------------------------------------
5917
    /**
5918
     * <p>Removes one newline from end of a String if it's there,
5919
     * otherwise leave it alone.  A newline is &quot;{@code \n}&quot;,
5920
     * &quot;{@code \r}&quot;, or &quot;{@code \r\n}&quot;.</p>
5921
     *
5922
     * <p>NOTE: This method changed in 2.0.
5923
     * It now more closely matches Perl chomp.</p>
5924
     *
5925
     * <pre>
5926
     * StringUtils.chomp(null)          = null
5927
     * StringUtils.chomp("")            = ""
5928
     * StringUtils.chomp("abc \r")      = "abc "
5929
     * StringUtils.chomp("abc\n")       = "abc"
5930
     * StringUtils.chomp("abc\r\n")     = "abc"
5931
     * StringUtils.chomp("abc\r\n\r\n") = "abc\r\n"
5932
     * StringUtils.chomp("abc\n\r")     = "abc\n"
5933
     * StringUtils.chomp("abc\n\rabc")  = "abc\n\rabc"
5934
     * StringUtils.chomp("\r")          = ""
5935
     * StringUtils.chomp("\n")          = ""
5936
     * StringUtils.chomp("\r\n")        = ""
5937
     * </pre>
5938
     *
5939
     * @param str  the String to chomp a newline from, may be null
5940
     * @return String without newline, {@code null} if null String input
5941
     */
5942
    public static String chomp(final String str) {
5943 1 1. chomp : negated conditional → KILLED
        if (isEmpty(str)) {
5944 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5945
        }
5946
5947 1 1. chomp : negated conditional → KILLED
        if (str.length() == 1) {
5948
            final char ch = str.charAt(0);
5949 2 1. chomp : negated conditional → KILLED
2. chomp : negated conditional → KILLED
            if (ch == CharUtils.CR || ch == CharUtils.LF) {
5950 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return EMPTY;
5951
            }
5952 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5953
        }
5954
5955 1 1. chomp : Replaced integer subtraction with addition → KILLED
        int lastIdx = str.length() - 1;
5956
        final char last = str.charAt(lastIdx);
5957
5958 1 1. chomp : negated conditional → KILLED
        if (last == CharUtils.LF) {
5959 2 1. chomp : Replaced integer subtraction with addition → KILLED
2. chomp : negated conditional → KILLED
            if (str.charAt(lastIdx - 1) == CharUtils.CR) {
5960 1 1. chomp : Changed increment from -1 to 1 → KILLED
                lastIdx--;
5961
            }
5962 1 1. chomp : negated conditional → KILLED
        } else if (last != CharUtils.CR) {
5963 1 1. chomp : Changed increment from 1 to -1 → KILLED
            lastIdx++;
5964
        }
5965 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, lastIdx);
5966
    }
5967
5968
    /**
5969
     * <p>Removes {@code separator} from the end of
5970
     * {@code str} if it's there, otherwise leave it alone.</p>
5971
     *
5972
     * <p>NOTE: This method changed in version 2.0.
5973
     * It now more closely matches Perl chomp.
5974
     * For the previous behavior, use {@link #substringBeforeLast(String, String)}.
5975
     * This method uses {@link String#endsWith(String)}.</p>
5976
     *
5977
     * <pre>
5978
     * StringUtils.chomp(null, *)         = null
5979
     * StringUtils.chomp("", *)           = ""
5980
     * StringUtils.chomp("foobar", "bar") = "foo"
5981
     * StringUtils.chomp("foobar", "baz") = "foobar"
5982
     * StringUtils.chomp("foo", "foo")    = ""
5983
     * StringUtils.chomp("foo ", "foo")   = "foo "
5984
     * StringUtils.chomp(" foo", "foo")   = " "
5985
     * StringUtils.chomp("foo", "foooo")  = "foo"
5986
     * StringUtils.chomp("foo", "")       = "foo"
5987
     * StringUtils.chomp("foo", null)     = "foo"
5988
     * </pre>
5989
     *
5990
     * @param str  the String to chomp from, may be null
5991
     * @param separator  separator String, may be null
5992
     * @return String without trailing separator, {@code null} if null String input
5993
     * @deprecated This feature will be removed in Lang 4.0, use {@link StringUtils#removeEnd(String, String)} instead
5994
     */
5995
    @Deprecated
5996
    public static String chomp(final String str, final String separator) {
5997 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return removeEnd(str,separator);
5998
    }
5999
6000
    // Chopping
6001
    //-----------------------------------------------------------------------
6002
    /**
6003
     * <p>Remove the last character from a String.</p>
6004
     *
6005
     * <p>If the String ends in {@code \r\n}, then remove both
6006
     * of them.</p>
6007
     *
6008
     * <pre>
6009
     * StringUtils.chop(null)          = null
6010
     * StringUtils.chop("")            = ""
6011
     * StringUtils.chop("abc \r")      = "abc "
6012
     * StringUtils.chop("abc\n")       = "abc"
6013
     * StringUtils.chop("abc\r\n")     = "abc"
6014
     * StringUtils.chop("abc")         = "ab"
6015
     * StringUtils.chop("abc\nabc")    = "abc\nab"
6016
     * StringUtils.chop("a")           = ""
6017
     * StringUtils.chop("\r")          = ""
6018
     * StringUtils.chop("\n")          = ""
6019
     * StringUtils.chop("\r\n")        = ""
6020
     * </pre>
6021
     *
6022
     * @param str  the String to chop last character from, may be null
6023
     * @return String without last character, {@code null} if null String input
6024
     */
6025
    public static String chop(final String str) {
6026 1 1. chop : negated conditional → KILLED
        if (str == null) {
6027 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6028
        }
6029
        final int strLen = str.length();
6030 2 1. chop : changed conditional boundary → SURVIVED
2. chop : negated conditional → KILLED
        if (strLen < 2) {
6031 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6032
        }
6033 1 1. chop : Replaced integer subtraction with addition → KILLED
        final int lastIdx = strLen - 1;
6034
        final String ret = str.substring(0, lastIdx);
6035
        final char last = str.charAt(lastIdx);
6036 3 1. chop : Replaced integer subtraction with addition → KILLED
2. chop : negated conditional → KILLED
3. chop : negated conditional → KILLED
        if (last == CharUtils.LF && ret.charAt(lastIdx - 1) == CharUtils.CR) {
6037 2 1. chop : Replaced integer subtraction with addition → KILLED
2. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ret.substring(0, lastIdx - 1);
6038
        }
6039 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return ret;
6040
    }
6041
6042
    // Conversion
6043
    //-----------------------------------------------------------------------
6044
6045
    // Padding
6046
    //-----------------------------------------------------------------------
6047
    /**
6048
     * <p>Repeat a String {@code repeat} times to form a
6049
     * new String.</p>
6050
     *
6051
     * <pre>
6052
     * StringUtils.repeat(null, 2) = null
6053
     * StringUtils.repeat("", 0)   = ""
6054
     * StringUtils.repeat("", 2)   = ""
6055
     * StringUtils.repeat("a", 3)  = "aaa"
6056
     * StringUtils.repeat("ab", 2) = "abab"
6057
     * StringUtils.repeat("a", -2) = ""
6058
     * </pre>
6059
     *
6060
     * @param str  the String to repeat, may be null
6061
     * @param repeat  number of times to repeat str, negative treated as zero
6062
     * @return a new String consisting of the original String repeated,
6063
     *  {@code null} if null String input
6064
     */
6065
    public static String repeat(final String str, final int repeat) {
6066
        // Performance tuned for 2.0 (JDK1.4)
6067
6068 1 1. repeat : negated conditional → KILLED
        if (str == null) {
6069 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6070
        }
6071 2 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → KILLED
        if (repeat <= 0) {
6072 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6073
        }
6074
        final int inputLength = str.length();
6075 2 1. repeat : negated conditional → KILLED
2. repeat : negated conditional → KILLED
        if (repeat == 1 || inputLength == 0) {
6076 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6077
        }
6078 3 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → SURVIVED
3. repeat : negated conditional → KILLED
        if (inputLength == 1 && repeat <= PAD_LIMIT) {
6079 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return repeat(str.charAt(0), repeat);
6080
        }
6081
6082 1 1. repeat : Replaced integer multiplication with division → KILLED
        final int outputLength = inputLength * repeat;
6083
        switch (inputLength) {
6084
            case 1 :
6085 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return repeat(str.charAt(0), repeat);
6086
            case 2 :
6087
                final char ch0 = str.charAt(0);
6088
                final char ch1 = str.charAt(1);
6089
                final char[] output2 = new char[outputLength];
6090 6 1. repeat : Changed increment from -1 to 1 → TIMED_OUT
2. repeat : Changed increment from -1 to 1 → TIMED_OUT
3. repeat : changed conditional boundary → KILLED
4. repeat : Replaced integer multiplication with division → KILLED
5. repeat : Replaced integer subtraction with addition → KILLED
6. repeat : negated conditional → KILLED
                for (int i = repeat * 2 - 2; i >= 0; i--, i--) {
6091
                    output2[i] = ch0;
6092 1 1. repeat : Replaced integer addition with subtraction → KILLED
                    output2[i + 1] = ch1;
6093
                }
6094 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return new String(output2);
6095
            default :
6096
                final StringBuilder buf = new StringBuilder(outputLength);
6097 3 1. repeat : changed conditional boundary → KILLED
2. repeat : Changed increment from 1 to -1 → KILLED
3. repeat : negated conditional → KILLED
                for (int i = 0; i < repeat; i++) {
6098
                    buf.append(str);
6099
                }
6100 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return buf.toString();
6101
        }
6102
    }
6103
6104
    /**
6105
     * <p>Repeat a String {@code repeat} times to form a
6106
     * new String, with a String separator injected each time. </p>
6107
     *
6108
     * <pre>
6109
     * StringUtils.repeat(null, null, 2) = null
6110
     * StringUtils.repeat(null, "x", 2)  = null
6111
     * StringUtils.repeat("", null, 0)   = ""
6112
     * StringUtils.repeat("", "", 2)     = ""
6113
     * StringUtils.repeat("", "x", 3)    = "xxx"
6114
     * StringUtils.repeat("?", ", ", 3)  = "?, ?, ?"
6115
     * </pre>
6116
     *
6117
     * @param str        the String to repeat, may be null
6118
     * @param separator  the String to inject, may be null
6119
     * @param repeat     number of times to repeat str, negative treated as zero
6120
     * @return a new String consisting of the original String repeated,
6121
     *  {@code null} if null String input
6122
     * @since 2.5
6123
     */
6124
    public static String repeat(final String str, final String separator, final int repeat) {
6125 2 1. repeat : negated conditional → KILLED
2. repeat : negated conditional → KILLED
        if(str == null || separator == null) {
6126 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return repeat(str, repeat);
6127
        }
6128
        // given that repeat(String, int) is quite optimized, better to rely on it than try and splice this into it
6129
        final String result = repeat(str + separator, repeat);
6130 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return removeEnd(result, separator);
6131
    }
6132
6133
    /**
6134
     * <p>Returns padding using the specified delimiter repeated
6135
     * to a given length.</p>
6136
     *
6137
     * <pre>
6138
     * StringUtils.repeat('e', 0)  = ""
6139
     * StringUtils.repeat('e', 3)  = "eee"
6140
     * StringUtils.repeat('e', -2) = ""
6141
     * </pre>
6142
     *
6143
     * <p>Note: this method doesn't not support padding with
6144
     * <a href="http://www.unicode.org/glossary/#supplementary_character">Unicode Supplementary Characters</a>
6145
     * as they require a pair of {@code char}s to be represented.
6146
     * If you are needing to support full I18N of your applications
6147
     * consider using {@link #repeat(String, int)} instead.
6148
     * </p>
6149
     *
6150
     * @param ch  character to repeat
6151
     * @param repeat  number of times to repeat char, negative treated as zero
6152
     * @return String with repeated character
6153
     * @see #repeat(String, int)
6154
     */
6155
    public static String repeat(final char ch, final int repeat) {
6156 2 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → KILLED
        if (repeat <= 0) {
6157 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6158
        }
6159
        final char[] buf = new char[repeat];
6160 4 1. repeat : changed conditional boundary → KILLED
2. repeat : Changed increment from -1 to 1 → KILLED
3. repeat : Replaced integer subtraction with addition → KILLED
4. repeat : negated conditional → KILLED
        for (int i = repeat - 1; i >= 0; i--) {
6161
            buf[i] = ch;
6162
        }
6163 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(buf);
6164
    }
6165
6166
    /**
6167
     * <p>Right pad a String with spaces (' ').</p>
6168
     *
6169
     * <p>The String is padded to the size of {@code size}.</p>
6170
     *
6171
     * <pre>
6172
     * StringUtils.rightPad(null, *)   = null
6173
     * StringUtils.rightPad("", 3)     = "   "
6174
     * StringUtils.rightPad("bat", 3)  = "bat"
6175
     * StringUtils.rightPad("bat", 5)  = "bat  "
6176
     * StringUtils.rightPad("bat", 1)  = "bat"
6177
     * StringUtils.rightPad("bat", -1) = "bat"
6178
     * </pre>
6179
     *
6180
     * @param str  the String to pad out, may be null
6181
     * @param size  the size to pad to
6182
     * @return right padded String or original String if no padding is necessary,
6183
     *  {@code null} if null String input
6184
     */
6185
    public static String rightPad(final String str, final int size) {
6186 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return rightPad(str, size, ' ');
6187
    }
6188
6189
    /**
6190
     * <p>Right pad a String with a specified character.</p>
6191
     *
6192
     * <p>The String is padded to the size of {@code size}.</p>
6193
     *
6194
     * <pre>
6195
     * StringUtils.rightPad(null, *, *)     = null
6196
     * StringUtils.rightPad("", 3, 'z')     = "zzz"
6197
     * StringUtils.rightPad("bat", 3, 'z')  = "bat"
6198
     * StringUtils.rightPad("bat", 5, 'z')  = "batzz"
6199
     * StringUtils.rightPad("bat", 1, 'z')  = "bat"
6200
     * StringUtils.rightPad("bat", -1, 'z') = "bat"
6201
     * </pre>
6202
     *
6203
     * @param str  the String to pad out, may be null
6204
     * @param size  the size to pad to
6205
     * @param padChar  the character to pad with
6206
     * @return right padded String or original String if no padding is necessary,
6207
     *  {@code null} if null String input
6208
     * @since 2.0
6209
     */
6210
    public static String rightPad(final String str, final int size, final char padChar) {
6211 1 1. rightPad : negated conditional → KILLED
        if (str == null) {
6212 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6213
        }
6214 1 1. rightPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - str.length();
6215 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads <= 0) {
6216 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6217
        }
6218 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads > PAD_LIMIT) {
6219 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return rightPad(str, size, String.valueOf(padChar));
6220
        }
6221 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.concat(repeat(padChar, pads));
6222
    }
6223
6224
    /**
6225
     * <p>Right pad a String with a specified String.</p>
6226
     *
6227
     * <p>The String is padded to the size of {@code size}.</p>
6228
     *
6229
     * <pre>
6230
     * StringUtils.rightPad(null, *, *)      = null
6231
     * StringUtils.rightPad("", 3, "z")      = "zzz"
6232
     * StringUtils.rightPad("bat", 3, "yz")  = "bat"
6233
     * StringUtils.rightPad("bat", 5, "yz")  = "batyz"
6234
     * StringUtils.rightPad("bat", 8, "yz")  = "batyzyzy"
6235
     * StringUtils.rightPad("bat", 1, "yz")  = "bat"
6236
     * StringUtils.rightPad("bat", -1, "yz") = "bat"
6237
     * StringUtils.rightPad("bat", 5, null)  = "bat  "
6238
     * StringUtils.rightPad("bat", 5, "")    = "bat  "
6239
     * </pre>
6240
     *
6241
     * @param str  the String to pad out, may be null
6242
     * @param size  the size to pad to
6243
     * @param padStr  the String to pad with, null or empty treated as single space
6244
     * @return right padded String or original String if no padding is necessary,
6245
     *  {@code null} if null String input
6246
     */
6247
    public static String rightPad(final String str, final int size, String padStr) {
6248 1 1. rightPad : negated conditional → KILLED
        if (str == null) {
6249 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6250
        }
6251 1 1. rightPad : negated conditional → KILLED
        if (isEmpty(padStr)) {
6252
            padStr = SPACE;
6253
        }
6254
        final int padLen = padStr.length();
6255
        final int strLen = str.length();
6256 1 1. rightPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6257 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads <= 0) {
6258 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6259
        }
6260 3 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
3. rightPad : negated conditional → KILLED
        if (padLen == 1 && pads <= PAD_LIMIT) {
6261 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return rightPad(str, size, padStr.charAt(0));
6262
        }
6263
6264 1 1. rightPad : negated conditional → KILLED
        if (pads == padLen) {
6265 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(padStr);
6266 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        } else if (pads < padLen) {
6267 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(padStr.substring(0, pads));
6268
        } else {
6269
            final char[] padding = new char[pads];
6270
            final char[] padChars = padStr.toCharArray();
6271 3 1. rightPad : changed conditional boundary → KILLED
2. rightPad : Changed increment from 1 to -1 → KILLED
3. rightPad : negated conditional → KILLED
            for (int i = 0; i < pads; i++) {
6272 1 1. rightPad : Replaced integer modulus with multiplication → KILLED
                padding[i] = padChars[i % padLen];
6273
            }
6274 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(new String(padding));
6275
        }
6276
    }
6277
6278
    /**
6279
     * <p>Left pad a String with spaces (' ').</p>
6280
     *
6281
     * <p>The String is padded to the size of {@code size}.</p>
6282
     *
6283
     * <pre>
6284
     * StringUtils.leftPad(null, *)   = null
6285
     * StringUtils.leftPad("", 3)     = "   "
6286
     * StringUtils.leftPad("bat", 3)  = "bat"
6287
     * StringUtils.leftPad("bat", 5)  = "  bat"
6288
     * StringUtils.leftPad("bat", 1)  = "bat"
6289
     * StringUtils.leftPad("bat", -1) = "bat"
6290
     * </pre>
6291
     *
6292
     * @param str  the String to pad out, may be null
6293
     * @param size  the size to pad to
6294
     * @return left padded String or original String if no padding is necessary,
6295
     *  {@code null} if null String input
6296
     */
6297
    public static String leftPad(final String str, final int size) {
6298 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return leftPad(str, size, ' ');
6299
    }
6300
6301
    /**
6302
     * <p>Left pad a String with a specified character.</p>
6303
     *
6304
     * <p>Pad to a size of {@code size}.</p>
6305
     *
6306
     * <pre>
6307
     * StringUtils.leftPad(null, *, *)     = null
6308
     * StringUtils.leftPad("", 3, 'z')     = "zzz"
6309
     * StringUtils.leftPad("bat", 3, 'z')  = "bat"
6310
     * StringUtils.leftPad("bat", 5, 'z')  = "zzbat"
6311
     * StringUtils.leftPad("bat", 1, 'z')  = "bat"
6312
     * StringUtils.leftPad("bat", -1, 'z') = "bat"
6313
     * </pre>
6314
     *
6315
     * @param str  the String to pad out, may be null
6316
     * @param size  the size to pad to
6317
     * @param padChar  the character to pad with
6318
     * @return left padded String or original String if no padding is necessary,
6319
     *  {@code null} if null String input
6320
     * @since 2.0
6321
     */
6322
    public static String leftPad(final String str, final int size, final char padChar) {
6323 1 1. leftPad : negated conditional → KILLED
        if (str == null) {
6324 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6325
        }
6326 1 1. leftPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - str.length();
6327 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads <= 0) {
6328 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6329
        }
6330 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads > PAD_LIMIT) {
6331 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return leftPad(str, size, String.valueOf(padChar));
6332
        }
6333 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return repeat(padChar, pads).concat(str);
6334
    }
6335
6336
    /**
6337
     * <p>Left pad a String with a specified String.</p>
6338
     *
6339
     * <p>Pad to a size of {@code size}.</p>
6340
     *
6341
     * <pre>
6342
     * StringUtils.leftPad(null, *, *)      = null
6343
     * StringUtils.leftPad("", 3, "z")      = "zzz"
6344
     * StringUtils.leftPad("bat", 3, "yz")  = "bat"
6345
     * StringUtils.leftPad("bat", 5, "yz")  = "yzbat"
6346
     * StringUtils.leftPad("bat", 8, "yz")  = "yzyzybat"
6347
     * StringUtils.leftPad("bat", 1, "yz")  = "bat"
6348
     * StringUtils.leftPad("bat", -1, "yz") = "bat"
6349
     * StringUtils.leftPad("bat", 5, null)  = "  bat"
6350
     * StringUtils.leftPad("bat", 5, "")    = "  bat"
6351
     * </pre>
6352
     *
6353
     * @param str  the String to pad out, may be null
6354
     * @param size  the size to pad to
6355
     * @param padStr  the String to pad with, null or empty treated as single space
6356
     * @return left padded String or original String if no padding is necessary,
6357
     *  {@code null} if null String input
6358
     */
6359
    public static String leftPad(final String str, final int size, String padStr) {
6360 1 1. leftPad : negated conditional → KILLED
        if (str == null) {
6361 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6362
        }
6363 1 1. leftPad : negated conditional → KILLED
        if (isEmpty(padStr)) {
6364
            padStr = SPACE;
6365
        }
6366
        final int padLen = padStr.length();
6367
        final int strLen = str.length();
6368 1 1. leftPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6369 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads <= 0) {
6370 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6371
        }
6372 3 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
3. leftPad : negated conditional → KILLED
        if (padLen == 1 && pads <= PAD_LIMIT) {
6373 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return leftPad(str, size, padStr.charAt(0));
6374
        }
6375
6376 1 1. leftPad : negated conditional → KILLED
        if (pads == padLen) {
6377 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return padStr.concat(str);
6378 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        } else if (pads < padLen) {
6379 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return padStr.substring(0, pads).concat(str);
6380
        } else {
6381
            final char[] padding = new char[pads];
6382
            final char[] padChars = padStr.toCharArray();
6383 3 1. leftPad : changed conditional boundary → KILLED
2. leftPad : Changed increment from 1 to -1 → KILLED
3. leftPad : negated conditional → KILLED
            for (int i = 0; i < pads; i++) {
6384 1 1. leftPad : Replaced integer modulus with multiplication → KILLED
                padding[i] = padChars[i % padLen];
6385
            }
6386 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return new String(padding).concat(str);
6387
        }
6388
    }
6389
6390
    /**
6391
     * Gets a CharSequence length or {@code 0} if the CharSequence is
6392
     * {@code null}.
6393
     *
6394
     * @param cs
6395
     *            a CharSequence or {@code null}
6396
     * @return CharSequence length or {@code 0} if the CharSequence is
6397
     *         {@code null}.
6398
     * @since 2.4
6399
     * @since 3.0 Changed signature from length(String) to length(CharSequence)
6400
     */
6401
    public static int length(final CharSequence cs) {
6402 2 1. length : negated conditional → KILLED
2. length : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return cs == null ? 0 : cs.length();
6403
    }
6404
6405
    // Centering
6406
    //-----------------------------------------------------------------------
6407
    /**
6408
     * <p>Centers a String in a larger String of size {@code size}
6409
     * using the space character (' ').</p>
6410
     *
6411
     * <p>If the size is less than the String length, the String is returned.
6412
     * A {@code null} String returns {@code null}.
6413
     * A negative size is treated as zero.</p>
6414
     *
6415
     * <p>Equivalent to {@code center(str, size, " ")}.</p>
6416
     *
6417
     * <pre>
6418
     * StringUtils.center(null, *)   = null
6419
     * StringUtils.center("", 4)     = "    "
6420
     * StringUtils.center("ab", -1)  = "ab"
6421
     * StringUtils.center("ab", 4)   = " ab "
6422
     * StringUtils.center("abcd", 2) = "abcd"
6423
     * StringUtils.center("a", 4)    = " a  "
6424
     * </pre>
6425
     *
6426
     * @param str  the String to center, may be null
6427
     * @param size  the int size of new String, negative treated as zero
6428
     * @return centered String, {@code null} if null String input
6429
     */
6430
    public static String center(final String str, final int size) {
6431 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return center(str, size, ' ');
6432
    }
6433
6434
    /**
6435
     * <p>Centers a String in a larger String of size {@code size}.
6436
     * Uses a supplied character as the value to pad the String with.</p>
6437
     *
6438
     * <p>If the size is less than the String length, the String is returned.
6439
     * A {@code null} String returns {@code null}.
6440
     * A negative size is treated as zero.</p>
6441
     *
6442
     * <pre>
6443
     * StringUtils.center(null, *, *)     = null
6444
     * StringUtils.center("", 4, ' ')     = "    "
6445
     * StringUtils.center("ab", -1, ' ')  = "ab"
6446
     * StringUtils.center("ab", 4, ' ')   = " ab "
6447
     * StringUtils.center("abcd", 2, ' ') = "abcd"
6448
     * StringUtils.center("a", 4, ' ')    = " a  "
6449
     * StringUtils.center("a", 4, 'y')    = "yayy"
6450
     * </pre>
6451
     *
6452
     * @param str  the String to center, may be null
6453
     * @param size  the int size of new String, negative treated as zero
6454
     * @param padChar  the character to pad the new String with
6455
     * @return centered String, {@code null} if null String input
6456
     * @since 2.0
6457
     */
6458
    public static String center(String str, final int size, final char padChar) {
6459 3 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
3. center : negated conditional → KILLED
        if (str == null || size <= 0) {
6460 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6461
        }
6462
        final int strLen = str.length();
6463 1 1. center : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6464 2 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
        if (pads <= 0) {
6465 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6466
        }
6467 2 1. center : Replaced integer division with multiplication → KILLED
2. center : Replaced integer addition with subtraction → KILLED
        str = leftPad(str, strLen + pads / 2, padChar);
6468
        str = rightPad(str, size, padChar);
6469 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
6470
    }
6471
6472
    /**
6473
     * <p>Centers a String in a larger String of size {@code size}.
6474
     * Uses a supplied String as the value to pad the String with.</p>
6475
     *
6476
     * <p>If the size is less than the String length, the String is returned.
6477
     * A {@code null} String returns {@code null}.
6478
     * A negative size is treated as zero.</p>
6479
     *
6480
     * <pre>
6481
     * StringUtils.center(null, *, *)     = null
6482
     * StringUtils.center("", 4, " ")     = "    "
6483
     * StringUtils.center("ab", -1, " ")  = "ab"
6484
     * StringUtils.center("ab", 4, " ")   = " ab "
6485
     * StringUtils.center("abcd", 2, " ") = "abcd"
6486
     * StringUtils.center("a", 4, " ")    = " a  "
6487
     * StringUtils.center("a", 4, "yz")   = "yayz"
6488
     * StringUtils.center("abc", 7, null) = "  abc  "
6489
     * StringUtils.center("abc", 7, "")   = "  abc  "
6490
     * </pre>
6491
     *
6492
     * @param str  the String to center, may be null
6493
     * @param size  the int size of new String, negative treated as zero
6494
     * @param padStr  the String to pad the new String with, must not be null or empty
6495
     * @return centered String, {@code null} if null String input
6496
     * @throws IllegalArgumentException if padStr is {@code null} or empty
6497
     */
6498
    public static String center(String str, final int size, String padStr) {
6499 3 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
3. center : negated conditional → KILLED
        if (str == null || size <= 0) {
6500 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6501
        }
6502 1 1. center : negated conditional → KILLED
        if (isEmpty(padStr)) {
6503
            padStr = SPACE;
6504
        }
6505
        final int strLen = str.length();
6506 1 1. center : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6507 2 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
        if (pads <= 0) {
6508 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6509
        }
6510 2 1. center : Replaced integer division with multiplication → KILLED
2. center : Replaced integer addition with subtraction → KILLED
        str = leftPad(str, strLen + pads / 2, padStr);
6511
        str = rightPad(str, size, padStr);
6512 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
6513
    }
6514
6515
    // Case conversion
6516
    //-----------------------------------------------------------------------
6517
    /**
6518
     * <p>Converts a String to upper case as per {@link String#toUpperCase()}.</p>
6519
     *
6520
     * <p>A {@code null} input String returns {@code null}.</p>
6521
     *
6522
     * <pre>
6523
     * StringUtils.upperCase(null)  = null
6524
     * StringUtils.upperCase("")    = ""
6525
     * StringUtils.upperCase("aBc") = "ABC"
6526
     * </pre>
6527
     *
6528
     * <p><strong>Note:</strong> As described in the documentation for {@link String#toUpperCase()},
6529
     * the result of this method is affected by the current locale.
6530
     * For platform-independent case transformations, the method {@link #lowerCase(String, Locale)}
6531
     * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
6532
     *
6533
     * @param str  the String to upper case, may be null
6534
     * @return the upper cased String, {@code null} if null String input
6535
     */
6536
    public static String upperCase(final String str) {
6537 1 1. upperCase : negated conditional → KILLED
        if (str == null) {
6538 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6539
        }
6540 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toUpperCase();
6541
    }
6542
6543
    /**
6544
     * <p>Converts a String to upper case as per {@link String#toUpperCase(Locale)}.</p>
6545
     *
6546
     * <p>A {@code null} input String returns {@code null}.</p>
6547
     *
6548
     * <pre>
6549
     * StringUtils.upperCase(null, Locale.ENGLISH)  = null
6550
     * StringUtils.upperCase("", Locale.ENGLISH)    = ""
6551
     * StringUtils.upperCase("aBc", Locale.ENGLISH) = "ABC"
6552
     * </pre>
6553
     *
6554
     * @param str  the String to upper case, may be null
6555
     * @param locale  the locale that defines the case transformation rules, must not be null
6556
     * @return the upper cased String, {@code null} if null String input
6557
     * @since 2.5
6558
     */
6559
    public static String upperCase(final String str, final Locale locale) {
6560 1 1. upperCase : negated conditional → KILLED
        if (str == null) {
6561 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6562
        }
6563 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toUpperCase(locale);
6564
    }
6565
6566
    /**
6567
     * <p>Converts a String to lower case as per {@link String#toLowerCase()}.</p>
6568
     *
6569
     * <p>A {@code null} input String returns {@code null}.</p>
6570
     *
6571
     * <pre>
6572
     * StringUtils.lowerCase(null)  = null
6573
     * StringUtils.lowerCase("")    = ""
6574
     * StringUtils.lowerCase("aBc") = "abc"
6575
     * </pre>
6576
     *
6577
     * <p><strong>Note:</strong> As described in the documentation for {@link String#toLowerCase()},
6578
     * the result of this method is affected by the current locale.
6579
     * For platform-independent case transformations, the method {@link #lowerCase(String, Locale)}
6580
     * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
6581
     *
6582
     * @param str  the String to lower case, may be null
6583
     * @return the lower cased String, {@code null} if null String input
6584
     */
6585
    public static String lowerCase(final String str) {
6586 1 1. lowerCase : negated conditional → KILLED
        if (str == null) {
6587 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6588
        }
6589 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toLowerCase();
6590
    }
6591
6592
    /**
6593
     * <p>Converts a String to lower case as per {@link String#toLowerCase(Locale)}.</p>
6594
     *
6595
     * <p>A {@code null} input String returns {@code null}.</p>
6596
     *
6597
     * <pre>
6598
     * StringUtils.lowerCase(null, Locale.ENGLISH)  = null
6599
     * StringUtils.lowerCase("", Locale.ENGLISH)    = ""
6600
     * StringUtils.lowerCase("aBc", Locale.ENGLISH) = "abc"
6601
     * </pre>
6602
     *
6603
     * @param str  the String to lower case, may be null
6604
     * @param locale  the locale that defines the case transformation rules, must not be null
6605
     * @return the lower cased String, {@code null} if null String input
6606
     * @since 2.5
6607
     */
6608
    public static String lowerCase(final String str, final Locale locale) {
6609 1 1. lowerCase : negated conditional → KILLED
        if (str == null) {
6610 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6611
        }
6612 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toLowerCase(locale);
6613
    }
6614
6615
    /**
6616
     * <p>Capitalizes a String changing the first character to title case as
6617
     * per {@link Character#toTitleCase(int)}. No other characters are changed.</p>
6618
     *
6619
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#capitalize(String)}.
6620
     * A {@code null} input String returns {@code null}.</p>
6621
     *
6622
     * <pre>
6623
     * StringUtils.capitalize(null)  = null
6624
     * StringUtils.capitalize("")    = ""
6625
     * StringUtils.capitalize("cat") = "Cat"
6626
     * StringUtils.capitalize("cAt") = "CAt"
6627
     * StringUtils.capitalize("'cat'") = "'cat'"
6628
     * </pre>
6629
     *
6630
     * @param str the String to capitalize, may be null
6631
     * @return the capitalized String, {@code null} if null String input
6632
     * @see org.apache.commons.lang3.text.WordUtils#capitalize(String)
6633
     * @see #uncapitalize(String)
6634
     * @since 2.0
6635
     */
6636
    public static String capitalize(final String str) {
6637
        int strLen;
6638 2 1. capitalize : negated conditional → KILLED
2. capitalize : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
6639 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6640
        }
6641
6642
        final int firstCodepoint = str.codePointAt(0);
6643
        final int newCodePoint = Character.toTitleCase(firstCodepoint);
6644 1 1. capitalize : negated conditional → KILLED
        if (firstCodepoint == newCodePoint) {
6645
            // already capitalized
6646 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6647
        }
6648
6649
        final int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6650
        int outOffset = 0;
6651 1 1. capitalize : Changed increment from 1 to -1 → KILLED
        newCodePoints[outOffset++] = newCodePoint; // copy the first codepoint
6652 2 1. capitalize : changed conditional boundary → KILLED
2. capitalize : negated conditional → KILLED
        for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
6653
            final int codepoint = str.codePointAt(inOffset);
6654 1 1. capitalize : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = codepoint; // copy the remaining ones
6655 1 1. capitalize : Replaced integer addition with subtraction → KILLED
            inOffset += Character.charCount(codepoint);
6656
         }
6657 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6658
    }
6659
6660
    /**
6661
     * <p>Uncapitalizes a String, changing the first character to lower case as
6662
     * per {@link Character#toLowerCase(int)}. No other characters are changed.</p>
6663
     *
6664
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#uncapitalize(String)}.
6665
     * A {@code null} input String returns {@code null}.</p>
6666
     *
6667
     * <pre>
6668
     * StringUtils.uncapitalize(null)  = null
6669
     * StringUtils.uncapitalize("")    = ""
6670
     * StringUtils.uncapitalize("cat") = "cat"
6671
     * StringUtils.uncapitalize("Cat") = "cat"
6672
     * StringUtils.uncapitalize("CAT") = "cAT"
6673
     * </pre>
6674
     *
6675
     * @param str the String to uncapitalize, may be null
6676
     * @return the uncapitalized String, {@code null} if null String input
6677
     * @see org.apache.commons.lang3.text.WordUtils#uncapitalize(String)
6678
     * @see #capitalize(String)
6679
     * @since 2.0
6680
     */
6681
    public static String uncapitalize(final String str) {
6682
        int strLen;
6683 2 1. uncapitalize : negated conditional → KILLED
2. uncapitalize : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
6684 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6685
        }
6686
6687
        final int firstCodepoint = str.codePointAt(0);
6688
        final int newCodePoint = Character.toLowerCase(firstCodepoint);
6689 1 1. uncapitalize : negated conditional → KILLED
        if (firstCodepoint == newCodePoint) {
6690
            // already capitalized
6691 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6692
        }
6693
6694
        final int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6695
        int outOffset = 0;
6696 1 1. uncapitalize : Changed increment from 1 to -1 → KILLED
        newCodePoints[outOffset++] = newCodePoint; // copy the first codepoint
6697 2 1. uncapitalize : changed conditional boundary → KILLED
2. uncapitalize : negated conditional → KILLED
        for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
6698
            final int codepoint = str.codePointAt(inOffset);
6699 1 1. uncapitalize : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = codepoint; // copy the remaining ones
6700 1 1. uncapitalize : Replaced integer addition with subtraction → KILLED
            inOffset += Character.charCount(codepoint);
6701
         }
6702 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6703
    }
6704
6705
    /**
6706
     * <p>Swaps the case of a String changing upper and title case to
6707
     * lower case, and lower case to upper case.</p>
6708
     *
6709
     * <ul>
6710
     *  <li>Upper case character converts to Lower case</li>
6711
     *  <li>Title case character converts to Lower case</li>
6712
     *  <li>Lower case character converts to Upper case</li>
6713
     * </ul>
6714
     *
6715
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#swapCase(String)}.
6716
     * A {@code null} input String returns {@code null}.</p>
6717
     *
6718
     * <pre>
6719
     * StringUtils.swapCase(null)                 = null
6720
     * StringUtils.swapCase("")                   = ""
6721
     * StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
6722
     * </pre>
6723
     *
6724
     * <p>NOTE: This method changed in Lang version 2.0.
6725
     * It no longer performs a word based algorithm.
6726
     * If you only use ASCII, you will notice no change.
6727
     * That functionality is available in org.apache.commons.lang3.text.WordUtils.</p>
6728
     *
6729
     * @param str  the String to swap case, may be null
6730
     * @return the changed String, {@code null} if null String input
6731
     */
6732
    public static String swapCase(final String str) {
6733 1 1. swapCase : negated conditional → KILLED
        if (StringUtils.isEmpty(str)) {
6734 1 1. swapCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6735
        }
6736
6737
        final int strLen = str.length();
6738
        final int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6739
        int outOffset = 0;
6740 2 1. swapCase : changed conditional boundary → KILLED
2. swapCase : negated conditional → KILLED
        for (int i = 0; i < strLen; ) {
6741
            final int oldCodepoint = str.codePointAt(i);
6742
            final int newCodePoint;
6743 1 1. swapCase : negated conditional → KILLED
            if (Character.isUpperCase(oldCodepoint)) {
6744
                newCodePoint = Character.toLowerCase(oldCodepoint);
6745 1 1. swapCase : negated conditional → KILLED
            } else if (Character.isTitleCase(oldCodepoint)) {
6746
                newCodePoint = Character.toLowerCase(oldCodepoint);
6747 1 1. swapCase : negated conditional → KILLED
            } else if (Character.isLowerCase(oldCodepoint)) {
6748
                newCodePoint = Character.toUpperCase(oldCodepoint);
6749
            } else {
6750
                newCodePoint = oldCodepoint;
6751
            }
6752 1 1. swapCase : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = newCodePoint;
6753 1 1. swapCase : Replaced integer addition with subtraction → KILLED
            i += Character.charCount(newCodePoint);
6754
         }
6755 1 1. swapCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6756
    }
6757
6758
    // Count matches
6759
    //-----------------------------------------------------------------------
6760
    /**
6761
     * <p>Counts how many times the substring appears in the larger string.</p>
6762
     *
6763
     * <p>A {@code null} or empty ("") String input returns {@code 0}.</p>
6764
     *
6765
     * <pre>
6766
     * StringUtils.countMatches(null, *)       = 0
6767
     * StringUtils.countMatches("", *)         = 0
6768
     * StringUtils.countMatches("abba", null)  = 0
6769
     * StringUtils.countMatches("abba", "")    = 0
6770
     * StringUtils.countMatches("abba", "a")   = 2
6771
     * StringUtils.countMatches("abba", "ab")  = 1
6772
     * StringUtils.countMatches("abba", "xxx") = 0
6773
     * </pre>
6774
     *
6775
     * @param str  the CharSequence to check, may be null
6776
     * @param sub  the substring to count, may be null
6777
     * @return the number of occurrences, 0 if either CharSequence is {@code null}
6778
     * @since 3.0 Changed signature from countMatches(String, String) to countMatches(CharSequence, CharSequence)
6779
     */
6780
    public static int countMatches(final CharSequence str, final CharSequence sub) {
6781 2 1. countMatches : negated conditional → KILLED
2. countMatches : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(sub)) {
6782 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
6783
        }
6784
        int count = 0;
6785
        int idx = 0;
6786 1 1. countMatches : negated conditional → KILLED
        while ((idx = CharSequenceUtils.indexOf(str, sub, idx)) != INDEX_NOT_FOUND) {
6787 1 1. countMatches : Changed increment from 1 to -1 → KILLED
            count++;
6788 1 1. countMatches : Replaced integer addition with subtraction → TIMED_OUT
            idx += sub.length();
6789
        }
6790 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return count;
6791
    }
6792
6793
    /**
6794
     * <p>Counts how many times the char appears in the given string.</p>
6795
     *
6796
     * <p>A {@code null} or empty ("") String input returns {@code 0}.</p>
6797
     *
6798
     * <pre>
6799
     * StringUtils.countMatches(null, *)       = 0
6800
     * StringUtils.countMatches("", *)         = 0
6801
     * StringUtils.countMatches("abba", 0)  = 0
6802
     * StringUtils.countMatches("abba", 'a')   = 2
6803
     * StringUtils.countMatches("abba", 'b')  = 2
6804
     * StringUtils.countMatches("abba", 'x') = 0
6805
     * </pre>
6806
     *
6807
     * @param str  the CharSequence to check, may be null
6808
     * @param ch  the char to count
6809
     * @return the number of occurrences, 0 if the CharSequence is {@code null}
6810
     * @since 3.4
6811
     */
6812
    public static int countMatches(final CharSequence str, final char ch) {
6813 1 1. countMatches : negated conditional → KILLED
        if (isEmpty(str)) {
6814 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
6815
        }
6816
        int count = 0;
6817
        // We could also call str.toCharArray() for faster look ups but that would generate more garbage.
6818 3 1. countMatches : changed conditional boundary → KILLED
2. countMatches : Changed increment from 1 to -1 → KILLED
3. countMatches : negated conditional → KILLED
        for (int i = 0; i < str.length(); i++) {
6819 1 1. countMatches : negated conditional → KILLED
            if (ch == str.charAt(i)) {
6820 1 1. countMatches : Changed increment from 1 to -1 → KILLED
                count++;
6821
            }
6822
        }
6823 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return count;
6824
    }
6825
6826
    // Character Tests
6827
    //-----------------------------------------------------------------------
6828
    /**
6829
     * <p>Checks if the CharSequence contains only Unicode letters.</p>
6830
     *
6831
     * <p>{@code null} will return {@code false}.
6832
     * An empty CharSequence (length()=0) will return {@code false}.</p>
6833
     *
6834
     * <pre>
6835
     * StringUtils.isAlpha(null)   = false
6836
     * StringUtils.isAlpha("")     = false
6837
     * StringUtils.isAlpha("  ")   = false
6838
     * StringUtils.isAlpha("abc")  = true
6839
     * StringUtils.isAlpha("ab2c") = false
6840
     * StringUtils.isAlpha("ab-c") = false
6841
     * </pre>
6842
     *
6843
     * @param cs  the CharSequence to check, may be null
6844
     * @return {@code true} if only contains letters, and is non-null
6845
     * @since 3.0 Changed signature from isAlpha(String) to isAlpha(CharSequence)
6846
     * @since 3.0 Changed "" to return false and not true
6847
     */
6848
    public static boolean isAlpha(final CharSequence cs) {
6849 1 1. isAlpha : negated conditional → KILLED
        if (isEmpty(cs)) {
6850 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6851
        }
6852
        final int sz = cs.length();
6853 3 1. isAlpha : changed conditional boundary → KILLED
2. isAlpha : Changed increment from 1 to -1 → KILLED
3. isAlpha : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6854 1 1. isAlpha : negated conditional → KILLED
            if (Character.isLetter(cs.charAt(i)) == false) {
6855 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6856
            }
6857
        }
6858 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6859
    }
6860
6861
    /**
6862
     * <p>Checks if the CharSequence contains only Unicode letters and
6863
     * space (' ').</p>
6864
     *
6865
     * <p>{@code null} will return {@code false}
6866
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6867
     *
6868
     * <pre>
6869
     * StringUtils.isAlphaSpace(null)   = false
6870
     * StringUtils.isAlphaSpace("")     = true
6871
     * StringUtils.isAlphaSpace("  ")   = true
6872
     * StringUtils.isAlphaSpace("abc")  = true
6873
     * StringUtils.isAlphaSpace("ab c") = true
6874
     * StringUtils.isAlphaSpace("ab2c") = false
6875
     * StringUtils.isAlphaSpace("ab-c") = false
6876
     * </pre>
6877
     *
6878
     * @param cs  the CharSequence to check, may be null
6879
     * @return {@code true} if only contains letters and space,
6880
     *  and is non-null
6881
     * @since 3.0 Changed signature from isAlphaSpace(String) to isAlphaSpace(CharSequence)
6882
     */
6883
    public static boolean isAlphaSpace(final CharSequence cs) {
6884 1 1. isAlphaSpace : negated conditional → KILLED
        if (cs == null) {
6885 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6886
        }
6887
        final int sz = cs.length();
6888 3 1. isAlphaSpace : changed conditional boundary → KILLED
2. isAlphaSpace : Changed increment from 1 to -1 → KILLED
3. isAlphaSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6889 2 1. isAlphaSpace : negated conditional → KILLED
2. isAlphaSpace : negated conditional → KILLED
            if (Character.isLetter(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
6890 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6891
            }
6892
        }
6893 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6894
    }
6895
6896
    /**
6897
     * <p>Checks if the CharSequence contains only Unicode letters or digits.</p>
6898
     *
6899
     * <p>{@code null} will return {@code false}.
6900
     * An empty CharSequence (length()=0) will return {@code false}.</p>
6901
     *
6902
     * <pre>
6903
     * StringUtils.isAlphanumeric(null)   = false
6904
     * StringUtils.isAlphanumeric("")     = false
6905
     * StringUtils.isAlphanumeric("  ")   = false
6906
     * StringUtils.isAlphanumeric("abc")  = true
6907
     * StringUtils.isAlphanumeric("ab c") = false
6908
     * StringUtils.isAlphanumeric("ab2c") = true
6909
     * StringUtils.isAlphanumeric("ab-c") = false
6910
     * </pre>
6911
     *
6912
     * @param cs  the CharSequence to check, may be null
6913
     * @return {@code true} if only contains letters or digits,
6914
     *  and is non-null
6915
     * @since 3.0 Changed signature from isAlphanumeric(String) to isAlphanumeric(CharSequence)
6916
     * @since 3.0 Changed "" to return false and not true
6917
     */
6918
    public static boolean isAlphanumeric(final CharSequence cs) {
6919 1 1. isAlphanumeric : negated conditional → KILLED
        if (isEmpty(cs)) {
6920 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6921
        }
6922
        final int sz = cs.length();
6923 3 1. isAlphanumeric : changed conditional boundary → KILLED
2. isAlphanumeric : Changed increment from 1 to -1 → KILLED
3. isAlphanumeric : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6924 1 1. isAlphanumeric : negated conditional → KILLED
            if (Character.isLetterOrDigit(cs.charAt(i)) == false) {
6925 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6926
            }
6927
        }
6928 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6929
    }
6930
6931
    /**
6932
     * <p>Checks if the CharSequence contains only Unicode letters, digits
6933
     * or space ({@code ' '}).</p>
6934
     *
6935
     * <p>{@code null} will return {@code false}.
6936
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6937
     *
6938
     * <pre>
6939
     * StringUtils.isAlphanumericSpace(null)   = false
6940
     * StringUtils.isAlphanumericSpace("")     = true
6941
     * StringUtils.isAlphanumericSpace("  ")   = true
6942
     * StringUtils.isAlphanumericSpace("abc")  = true
6943
     * StringUtils.isAlphanumericSpace("ab c") = true
6944
     * StringUtils.isAlphanumericSpace("ab2c") = true
6945
     * StringUtils.isAlphanumericSpace("ab-c") = false
6946
     * </pre>
6947
     *
6948
     * @param cs  the CharSequence to check, may be null
6949
     * @return {@code true} if only contains letters, digits or space,
6950
     *  and is non-null
6951
     * @since 3.0 Changed signature from isAlphanumericSpace(String) to isAlphanumericSpace(CharSequence)
6952
     */
6953
    public static boolean isAlphanumericSpace(final CharSequence cs) {
6954 1 1. isAlphanumericSpace : negated conditional → KILLED
        if (cs == null) {
6955 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6956
        }
6957
        final int sz = cs.length();
6958 3 1. isAlphanumericSpace : changed conditional boundary → KILLED
2. isAlphanumericSpace : Changed increment from 1 to -1 → KILLED
3. isAlphanumericSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6959 2 1. isAlphanumericSpace : negated conditional → KILLED
2. isAlphanumericSpace : negated conditional → KILLED
            if (Character.isLetterOrDigit(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
6960 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6961
            }
6962
        }
6963 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6964
    }
6965
6966
    /**
6967
     * <p>Checks if the CharSequence contains only ASCII printable characters.</p>
6968
     *
6969
     * <p>{@code null} will return {@code false}.
6970
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6971
     *
6972
     * <pre>
6973
     * StringUtils.isAsciiPrintable(null)     = false
6974
     * StringUtils.isAsciiPrintable("")       = true
6975
     * StringUtils.isAsciiPrintable(" ")      = true
6976
     * StringUtils.isAsciiPrintable("Ceki")   = true
6977
     * StringUtils.isAsciiPrintable("ab2c")   = true
6978
     * StringUtils.isAsciiPrintable("!ab-c~") = true
6979
     * StringUtils.isAsciiPrintable("\u0020") = true
6980
     * StringUtils.isAsciiPrintable("\u0021") = true
6981
     * StringUtils.isAsciiPrintable("\u007e") = true
6982
     * StringUtils.isAsciiPrintable("\u007f") = false
6983
     * StringUtils.isAsciiPrintable("Ceki G\u00fclc\u00fc") = false
6984
     * </pre>
6985
     *
6986
     * @param cs the CharSequence to check, may be null
6987
     * @return {@code true} if every character is in the range
6988
     *  32 thru 126
6989
     * @since 2.1
6990
     * @since 3.0 Changed signature from isAsciiPrintable(String) to isAsciiPrintable(CharSequence)
6991
     */
6992
    public static boolean isAsciiPrintable(final CharSequence cs) {
6993 1 1. isAsciiPrintable : negated conditional → KILLED
        if (cs == null) {
6994 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6995
        }
6996
        final int sz = cs.length();
6997 3 1. isAsciiPrintable : changed conditional boundary → KILLED
2. isAsciiPrintable : Changed increment from 1 to -1 → KILLED
3. isAsciiPrintable : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6998 1 1. isAsciiPrintable : negated conditional → KILLED
            if (CharUtils.isAsciiPrintable(cs.charAt(i)) == false) {
6999 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7000
            }
7001
        }
7002 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7003
    }
7004
7005
    /**
7006
     * <p>Checks if the CharSequence contains only Unicode digits.
7007
     * A decimal point is not a Unicode digit and returns false.</p>
7008
     *
7009
     * <p>{@code null} will return {@code false}.
7010
     * An empty CharSequence (length()=0) will return {@code false}.</p>
7011
     *
7012
     * <p>Note that the method does not allow for a leading sign, either positive or negative.
7013
     * Also, if a String passes the numeric test, it may still generate a NumberFormatException
7014
     * when parsed by Integer.parseInt or Long.parseLong, e.g. if the value is outside the range
7015
     * for int or long respectively.</p>
7016
     *
7017
     * <pre>
7018
     * StringUtils.isNumeric(null)   = false
7019
     * StringUtils.isNumeric("")     = false
7020
     * StringUtils.isNumeric("  ")   = false
7021
     * StringUtils.isNumeric("123")  = true
7022
     * StringUtils.isNumeric("\u0967\u0968\u0969")  = true
7023
     * StringUtils.isNumeric("12 3") = false
7024
     * StringUtils.isNumeric("ab2c") = false
7025
     * StringUtils.isNumeric("12-3") = false
7026
     * StringUtils.isNumeric("12.3") = false
7027
     * StringUtils.isNumeric("-123") = false
7028
     * StringUtils.isNumeric("+123") = false
7029
     * </pre>
7030
     *
7031
     * @param cs  the CharSequence to check, may be null
7032
     * @return {@code true} if only contains digits, and is non-null
7033
     * @since 3.0 Changed signature from isNumeric(String) to isNumeric(CharSequence)
7034
     * @since 3.0 Changed "" to return false and not true
7035
     */
7036
    public static boolean isNumeric(final CharSequence cs) {
7037 1 1. isNumeric : negated conditional → KILLED
        if (isEmpty(cs)) {
7038 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7039
        }
7040
        final int sz = cs.length();
7041 3 1. isNumeric : changed conditional boundary → KILLED
2. isNumeric : Changed increment from 1 to -1 → KILLED
3. isNumeric : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7042 1 1. isNumeric : negated conditional → KILLED
            if (!Character.isDigit(cs.charAt(i))) {
7043 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7044
            }
7045
        }
7046 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7047
    }
7048
7049
    /**
7050
     * <p>Checks if the CharSequence contains only Unicode digits or space
7051
     * ({@code ' '}).
7052
     * A decimal point is not a Unicode digit and returns false.</p>
7053
     *
7054
     * <p>{@code null} will return {@code false}.
7055
     * An empty CharSequence (length()=0) will return {@code true}.</p>
7056
     *
7057
     * <pre>
7058
     * StringUtils.isNumericSpace(null)   = false
7059
     * StringUtils.isNumericSpace("")     = true
7060
     * StringUtils.isNumericSpace("  ")   = true
7061
     * StringUtils.isNumericSpace("123")  = true
7062
     * StringUtils.isNumericSpace("12 3") = true
7063
     * StringUtils.isNumeric("\u0967\u0968\u0969")  = true
7064
     * StringUtils.isNumeric("\u0967\u0968 \u0969")  = true
7065
     * StringUtils.isNumericSpace("ab2c") = false
7066
     * StringUtils.isNumericSpace("12-3") = false
7067
     * StringUtils.isNumericSpace("12.3") = false
7068
     * </pre>
7069
     *
7070
     * @param cs  the CharSequence to check, may be null
7071
     * @return {@code true} if only contains digits or space,
7072
     *  and is non-null
7073
     * @since 3.0 Changed signature from isNumericSpace(String) to isNumericSpace(CharSequence)
7074
     */
7075
    public static boolean isNumericSpace(final CharSequence cs) {
7076 1 1. isNumericSpace : negated conditional → KILLED
        if (cs == null) {
7077 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7078
        }
7079
        final int sz = cs.length();
7080 3 1. isNumericSpace : changed conditional boundary → KILLED
2. isNumericSpace : Changed increment from 1 to -1 → KILLED
3. isNumericSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7081 2 1. isNumericSpace : negated conditional → KILLED
2. isNumericSpace : negated conditional → KILLED
            if (Character.isDigit(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
7082 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7083
            }
7084
        }
7085 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7086
    }
7087
7088
    /**
7089
     * <p>Checks if the CharSequence contains only whitespace.</p>
7090
     * 
7091
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
7092
     *
7093
     * <p>{@code null} will return {@code false}.
7094
     * An empty CharSequence (length()=0) will return {@code true}.</p>
7095
     *
7096
     * <pre>
7097
     * StringUtils.isWhitespace(null)   = false
7098
     * StringUtils.isWhitespace("")     = true
7099
     * StringUtils.isWhitespace("  ")   = true
7100
     * StringUtils.isWhitespace("abc")  = false
7101
     * StringUtils.isWhitespace("ab2c") = false
7102
     * StringUtils.isWhitespace("ab-c") = false
7103
     * </pre>
7104
     *
7105
     * @param cs  the CharSequence to check, may be null
7106
     * @return {@code true} if only contains whitespace, and is non-null
7107
     * @since 2.0
7108
     * @since 3.0 Changed signature from isWhitespace(String) to isWhitespace(CharSequence)
7109
     */
7110
    public static boolean isWhitespace(final CharSequence cs) {
7111 1 1. isWhitespace : negated conditional → KILLED
        if (cs == null) {
7112 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7113
        }
7114
        final int sz = cs.length();
7115 3 1. isWhitespace : changed conditional boundary → KILLED
2. isWhitespace : Changed increment from 1 to -1 → KILLED
3. isWhitespace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7116 1 1. isWhitespace : negated conditional → KILLED
            if (Character.isWhitespace(cs.charAt(i)) == false) {
7117 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7118
            }
7119
        }
7120 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7121
    }
7122
7123
    /**
7124
     * <p>Checks if the CharSequence contains only lowercase characters.</p>
7125
     *
7126
     * <p>{@code null} will return {@code false}.
7127
     * An empty CharSequence (length()=0) will return {@code false}.</p>
7128
     *
7129
     * <pre>
7130
     * StringUtils.isAllLowerCase(null)   = false
7131
     * StringUtils.isAllLowerCase("")     = false
7132
     * StringUtils.isAllLowerCase("  ")   = false
7133
     * StringUtils.isAllLowerCase("abc")  = true
7134
     * StringUtils.isAllLowerCase("abC")  = false
7135
     * StringUtils.isAllLowerCase("ab c") = false
7136
     * StringUtils.isAllLowerCase("ab1c") = false
7137
     * StringUtils.isAllLowerCase("ab/c") = false
7138
     * </pre>
7139
     *
7140
     * @param cs  the CharSequence to check, may be null
7141
     * @return {@code true} if only contains lowercase characters, and is non-null
7142
     * @since 2.5
7143
     * @since 3.0 Changed signature from isAllLowerCase(String) to isAllLowerCase(CharSequence)
7144
     */
7145
    public static boolean isAllLowerCase(final CharSequence cs) {
7146 2 1. isAllLowerCase : negated conditional → KILLED
2. isAllLowerCase : negated conditional → KILLED
        if (cs == null || isEmpty(cs)) {
7147 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7148
        }
7149
        final int sz = cs.length();
7150 3 1. isAllLowerCase : changed conditional boundary → KILLED
2. isAllLowerCase : Changed increment from 1 to -1 → KILLED
3. isAllLowerCase : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7151 1 1. isAllLowerCase : negated conditional → KILLED
            if (Character.isLowerCase(cs.charAt(i)) == false) {
7152 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7153
            }
7154
        }
7155 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7156
    }
7157
7158
    /**
7159
     * <p>Checks if the CharSequence contains only uppercase characters.</p>
7160
     *
7161
     * <p>{@code null} will return {@code false}.
7162
     * An empty String (length()=0) will return {@code false}.</p>
7163
     *
7164
     * <pre>
7165
     * StringUtils.isAllUpperCase(null)   = false
7166
     * StringUtils.isAllUpperCase("")     = false
7167
     * StringUtils.isAllUpperCase("  ")   = false
7168
     * StringUtils.isAllUpperCase("ABC")  = true
7169
     * StringUtils.isAllUpperCase("aBC")  = false
7170
     * StringUtils.isAllUpperCase("A C")  = false
7171
     * StringUtils.isAllUpperCase("A1C")  = false
7172
     * StringUtils.isAllUpperCase("A/C")  = false
7173
     * </pre>
7174
     *
7175
     * @param cs the CharSequence to check, may be null
7176
     * @return {@code true} if only contains uppercase characters, and is non-null
7177
     * @since 2.5
7178
     * @since 3.0 Changed signature from isAllUpperCase(String) to isAllUpperCase(CharSequence)
7179
     */
7180
    public static boolean isAllUpperCase(final CharSequence cs) {
7181 2 1. isAllUpperCase : negated conditional → KILLED
2. isAllUpperCase : negated conditional → KILLED
        if (cs == null || isEmpty(cs)) {
7182 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7183
        }
7184
        final int sz = cs.length();
7185 3 1. isAllUpperCase : changed conditional boundary → KILLED
2. isAllUpperCase : Changed increment from 1 to -1 → KILLED
3. isAllUpperCase : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7186 1 1. isAllUpperCase : negated conditional → KILLED
            if (Character.isUpperCase(cs.charAt(i)) == false) {
7187 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7188
            }
7189
        }
7190 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7191
    }
7192
7193
    // Defaults
7194
    //-----------------------------------------------------------------------
7195
    /**
7196
     * <p>Returns either the passed in String,
7197
     * or if the String is {@code null}, an empty String ("").</p>
7198
     *
7199
     * <pre>
7200
     * StringUtils.defaultString(null)  = ""
7201
     * StringUtils.defaultString("")    = ""
7202
     * StringUtils.defaultString("bat") = "bat"
7203
     * </pre>
7204
     *
7205
     * @see ObjectUtils#toString(Object)
7206
     * @see String#valueOf(Object)
7207
     * @param str  the String to check, may be null
7208
     * @return the passed in String, or the empty String if it
7209
     *  was {@code null}
7210
     */
7211
    public static String defaultString(final String str) {
7212 2 1. defaultString : negated conditional → KILLED
2. defaultString : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : str;
7213
    }
7214
7215
    /**
7216
     * <p>Returns either the passed in String, or if the String is
7217
     * {@code null}, the value of {@code defaultStr}.</p>
7218
     *
7219
     * <pre>
7220
     * StringUtils.defaultString(null, "NULL")  = "NULL"
7221
     * StringUtils.defaultString("", "NULL")    = ""
7222
     * StringUtils.defaultString("bat", "NULL") = "bat"
7223
     * </pre>
7224
     *
7225
     * @see ObjectUtils#toString(Object,String)
7226
     * @see String#valueOf(Object)
7227
     * @param str  the String to check, may be null
7228
     * @param defaultStr  the default String to return
7229
     *  if the input is {@code null}, may be null
7230
     * @return the passed in String, or the default if it was {@code null}
7231
     */
7232
    public static String defaultString(final String str, final String defaultStr) {
7233 2 1. defaultString : negated conditional → KILLED
2. defaultString : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? defaultStr : str;
7234
    }
7235
7236
    /**
7237
     * <p>Returns either the passed in CharSequence, or if the CharSequence is
7238
     * whitespace, empty ("") or {@code null}, the value of {@code defaultStr}.</p>
7239
     * 
7240
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
7241
     *
7242
     * <pre>
7243
     * StringUtils.defaultIfBlank(null, "NULL")  = "NULL"
7244
     * StringUtils.defaultIfBlank("", "NULL")    = "NULL"
7245
     * StringUtils.defaultIfBlank(" ", "NULL")   = "NULL"
7246
     * StringUtils.defaultIfBlank("bat", "NULL") = "bat"
7247
     * StringUtils.defaultIfBlank("", null)      = null
7248
     * </pre>
7249
     * @param <T> the specific kind of CharSequence
7250
     * @param str the CharSequence to check, may be null
7251
     * @param defaultStr  the default CharSequence to return
7252
     *  if the input is whitespace, empty ("") or {@code null}, may be null
7253
     * @return the passed in CharSequence, or the default
7254
     * @see StringUtils#defaultString(String, String)
7255
     */
7256
    public static <T extends CharSequence> T defaultIfBlank(final T str, final T defaultStr) {
7257 2 1. defaultIfBlank : negated conditional → KILLED
2. defaultIfBlank : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfBlank to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isBlank(str) ? defaultStr : str;
7258
    }
7259
7260
    /**
7261
     * <p>Returns either the passed in CharSequence, or if the CharSequence is
7262
     * empty or {@code null}, the value of {@code defaultStr}.</p>
7263
     *
7264
     * <pre>
7265
     * StringUtils.defaultIfEmpty(null, "NULL")  = "NULL"
7266
     * StringUtils.defaultIfEmpty("", "NULL")    = "NULL"
7267
     * StringUtils.defaultIfEmpty(" ", "NULL")   = " "
7268
     * StringUtils.defaultIfEmpty("bat", "NULL") = "bat"
7269
     * StringUtils.defaultIfEmpty("", null)      = null
7270
     * </pre>
7271
     * @param <T> the specific kind of CharSequence
7272
     * @param str  the CharSequence to check, may be null
7273
     * @param defaultStr  the default CharSequence to return
7274
     *  if the input is empty ("") or {@code null}, may be null
7275
     * @return the passed in CharSequence, or the default
7276
     * @see StringUtils#defaultString(String, String)
7277
     */
7278
    public static <T extends CharSequence> T defaultIfEmpty(final T str, final T defaultStr) {
7279 2 1. defaultIfEmpty : negated conditional → KILLED
2. defaultIfEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isEmpty(str) ? defaultStr : str;
7280
    }
7281
7282
    // Rotating (circular shift)
7283
    //-----------------------------------------------------------------------
7284
    /**
7285
     * <p>Rotate (circular shift) a String of {@code shift} characters.</p>
7286
     * <ul>
7287
     *  <li>If {@code shift > 0}, right circular shift (ex : ABCDEF =&gt; FABCDE)</li>
7288
     *  <li>If {@code shift < 0}, left circular shift (ex : ABCDEF =&gt; BCDEFA)</li>
7289
     * </ul>
7290
     *
7291
     * <pre>
7292
     * StringUtils.rotate(null, *)        = null
7293
     * StringUtils.rotate("", *)          = ""
7294
     * StringUtils.rotate("abcdefg", 0)   = "abcdefg"
7295
     * StringUtils.rotate("abcdefg", 2)   = "fgabcde"
7296
     * StringUtils.rotate("abcdefg", -2)  = "cdefgab"
7297
     * StringUtils.rotate("abcdefg", 7)   = "abcdefg"
7298
     * StringUtils.rotate("abcdefg", -7)  = "abcdefg"
7299
     * StringUtils.rotate("abcdefg", 9)   = "fgabcde"
7300
     * StringUtils.rotate("abcdefg", -9)  = "cdefgab"
7301
     * </pre>
7302
     *
7303
     * @param str  the String to rotate, may be null
7304
     * @param shift  number of time to shift (positive : right shift, negative : left shift)
7305
     * @return the rotated String,
7306
     *          or the original String if {@code shift == 0},
7307
     *          or {@code null} if null String input
7308
     * @since 3.5
7309
     */
7310
    public static String rotate(final String str, final int shift) {
7311 1 1. rotate : negated conditional → KILLED
        if (str == null) {
7312 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7313
        }
7314
7315
        final int strLen = str.length();
7316 4 1. rotate : Replaced integer modulus with multiplication → SURVIVED
2. rotate : negated conditional → KILLED
3. rotate : negated conditional → KILLED
4. rotate : negated conditional → KILLED
        if (shift == 0 || strLen == 0 || shift % strLen == 0) {
7317 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7318
        }
7319
7320
        final StringBuilder builder = new StringBuilder(strLen);
7321 2 1. rotate : removed negation → KILLED
2. rotate : Replaced integer modulus with multiplication → KILLED
        final int offset = - (shift % strLen);
7322
        builder.append(substring(str, offset));
7323
        builder.append(substring(str, 0, offset));
7324 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
7325
    }
7326
7327
    // Reversing
7328
    //-----------------------------------------------------------------------
7329
    /**
7330
     * <p>Reverses a String as per {@link StringBuilder#reverse()}.</p>
7331
     *
7332
     * <p>A {@code null} String returns {@code null}.</p>
7333
     *
7334
     * <pre>
7335
     * StringUtils.reverse(null)  = null
7336
     * StringUtils.reverse("")    = ""
7337
     * StringUtils.reverse("bat") = "tab"
7338
     * </pre>
7339
     *
7340
     * @param str  the String to reverse, may be null
7341
     * @return the reversed String, {@code null} if null String input
7342
     */
7343
    public static String reverse(final String str) {
7344 1 1. reverse : negated conditional → KILLED
        if (str == null) {
7345 1 1. reverse : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7346
        }
7347 1 1. reverse : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new StringBuilder(str).reverse().toString();
7348
    }
7349
7350
    /**
7351
     * <p>Reverses a String that is delimited by a specific character.</p>
7352
     *
7353
     * <p>The Strings between the delimiters are not reversed.
7354
     * Thus java.lang.String becomes String.lang.java (if the delimiter
7355
     * is {@code '.'}).</p>
7356
     *
7357
     * <pre>
7358
     * StringUtils.reverseDelimited(null, *)      = null
7359
     * StringUtils.reverseDelimited("", *)        = ""
7360
     * StringUtils.reverseDelimited("a.b.c", 'x') = "a.b.c"
7361
     * StringUtils.reverseDelimited("a.b.c", ".") = "c.b.a"
7362
     * </pre>
7363
     *
7364
     * @param str  the String to reverse, may be null
7365
     * @param separatorChar  the separator character to use
7366
     * @return the reversed String, {@code null} if null String input
7367
     * @since 2.0
7368
     */
7369
    public static String reverseDelimited(final String str, final char separatorChar) {
7370 1 1. reverseDelimited : negated conditional → KILLED
        if (str == null) {
7371 1 1. reverseDelimited : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7372
        }
7373
        // could implement manually, but simple way is to reuse other,
7374
        // probably slower, methods.
7375
        final String[] strs = split(str, separatorChar);
7376 1 1. reverseDelimited : removed call to org/apache/commons/lang3/ArrayUtils::reverse → KILLED
        ArrayUtils.reverse(strs);
7377 1 1. reverseDelimited : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(strs, separatorChar);
7378
    }
7379
7380
    // Abbreviating
7381
    //-----------------------------------------------------------------------
7382
    /**
7383
     * <p>Abbreviates a String using ellipses. This will turn
7384
     * "Now is the time for all good men" into "Now is the time for..."</p>
7385
     *
7386
     * <p>Specifically:</p>
7387
     * <ul>
7388
     *   <li>If the number of characters in {@code str} is less than or equal to 
7389
     *       {@code maxWidth}, return {@code str}.</li>
7390
     *   <li>Else abbreviate it to {@code (substring(str, 0, max-3) + "...")}.</li>
7391
     *   <li>If {@code maxWidth} is less than {@code 4}, throw an
7392
     *       {@code IllegalArgumentException}.</li>
7393
     *   <li>In no case will it return a String of length greater than
7394
     *       {@code maxWidth}.</li>
7395
     * </ul>
7396
     *
7397
     * <pre>
7398
     * StringUtils.abbreviate(null, *)      = null
7399
     * StringUtils.abbreviate("", 4)        = ""
7400
     * StringUtils.abbreviate("abcdefg", 6) = "abc..."
7401
     * StringUtils.abbreviate("abcdefg", 7) = "abcdefg"
7402
     * StringUtils.abbreviate("abcdefg", 8) = "abcdefg"
7403
     * StringUtils.abbreviate("abcdefg", 4) = "a..."
7404
     * StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException
7405
     * </pre>
7406
     *
7407
     * @param str  the String to check, may be null
7408
     * @param maxWidth  maximum length of result String, must be at least 4
7409
     * @return abbreviated String, {@code null} if null String input
7410
     * @throws IllegalArgumentException if the width is too small
7411
     * @since 2.0
7412
     */
7413
    public static String abbreviate(final String str, final int maxWidth) {
7414
        final String defaultAbbrevMarker = "...";
7415 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, defaultAbbrevMarker, 0, maxWidth);
7416
    }
7417
7418
    /**
7419
     * <p>Abbreviates a String using ellipses. This will turn
7420
     * "Now is the time for all good men" into "...is the time for..."</p>
7421
     *
7422
     * <p>Works like {@code abbreviate(String, int)}, but allows you to specify
7423
     * a "left edge" offset.  Note that this left edge is not necessarily going to
7424
     * be the leftmost character in the result, or the first character following the
7425
     * ellipses, but it will appear somewhere in the result.
7426
     *
7427
     * <p>In no case will it return a String of length greater than
7428
     * {@code maxWidth}.</p>
7429
     *
7430
     * <pre>
7431
     * StringUtils.abbreviate(null, *, *)                = null
7432
     * StringUtils.abbreviate("", 0, 4)                  = ""
7433
     * StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..."
7434
     * StringUtils.abbreviate("abcdefghijklmno", 0, 10)  = "abcdefg..."
7435
     * StringUtils.abbreviate("abcdefghijklmno", 1, 10)  = "abcdefg..."
7436
     * StringUtils.abbreviate("abcdefghijklmno", 4, 10)  = "abcdefg..."
7437
     * StringUtils.abbreviate("abcdefghijklmno", 5, 10)  = "...fghi..."
7438
     * StringUtils.abbreviate("abcdefghijklmno", 6, 10)  = "...ghij..."
7439
     * StringUtils.abbreviate("abcdefghijklmno", 8, 10)  = "...ijklmno"
7440
     * StringUtils.abbreviate("abcdefghijklmno", 10, 10) = "...ijklmno"
7441
     * StringUtils.abbreviate("abcdefghijklmno", 12, 10) = "...ijklmno"
7442
     * StringUtils.abbreviate("abcdefghij", 0, 3)        = IllegalArgumentException
7443
     * StringUtils.abbreviate("abcdefghij", 5, 6)        = IllegalArgumentException
7444
     * </pre>
7445
     *
7446
     * @param str  the String to check, may be null
7447
     * @param offset  left edge of source String
7448
     * @param maxWidth  maximum length of result String, must be at least 4
7449
     * @return abbreviated String, {@code null} if null String input
7450
     * @throws IllegalArgumentException if the width is too small
7451
     * @since 2.0
7452
     */
7453
    public static String abbreviate(final String str, final int offset, final int maxWidth) {
7454
        final String defaultAbbrevMarker = "...";
7455 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, defaultAbbrevMarker, offset, maxWidth);
7456
    }
7457
7458
    /**
7459
     * <p>Abbreviates a String using another given String as replacement marker. This will turn
7460
     * "Now is the time for all good men" into "Now is the time for..." if "..." was defined
7461
     * as the replacement marker.</p>
7462
     *
7463
     * <p>Specifically:</p>
7464
     * <ul>
7465
     *   <li>If the number of characters in {@code str} is less than or equal to 
7466
     *       {@code maxWidth}, return {@code str}.</li>
7467
     *   <li>Else abbreviate it to {@code (substring(str, 0, max-abbrevMarker.length) + abbrevMarker)}.</li>
7468
     *   <li>If {@code maxWidth} is less than {@code abbrevMarker.length + 1}, throw an
7469
     *       {@code IllegalArgumentException}.</li>
7470
     *   <li>In no case will it return a String of length greater than
7471
     *       {@code maxWidth}.</li>
7472
     * </ul>
7473
     *
7474
     * <pre>
7475
     * StringUtils.abbreviate(null, "...", *)      = null
7476
     * StringUtils.abbreviate("abcdefg", null, *)  = "abcdefg"
7477
     * StringUtils.abbreviate("", "...", 4)        = ""
7478
     * StringUtils.abbreviate("abcdefg", ".", 5)   = "abcd."
7479
     * StringUtils.abbreviate("abcdefg", ".", 7)   = "abcdefg"
7480
     * StringUtils.abbreviate("abcdefg", ".", 8)   = "abcdefg"
7481
     * StringUtils.abbreviate("abcdefg", "..", 4)  = "ab.."
7482
     * StringUtils.abbreviate("abcdefg", "..", 3)  = "a.."
7483
     * StringUtils.abbreviate("abcdefg", "..", 2)  = IllegalArgumentException
7484
     * StringUtils.abbreviate("abcdefg", "...", 3) = IllegalArgumentException
7485
     * </pre>
7486
     *
7487
     * @param str  the String to check, may be null
7488
     * @param abbrevMarker  the String used as replacement marker
7489
     * @param maxWidth  maximum length of result String, must be at least {@code abbrevMarker.length + 1}
7490
     * @return abbreviated String, {@code null} if null String input
7491
     * @throws IllegalArgumentException if the width is too small
7492
     * @since 3.5
7493
     */
7494
    public static String abbreviate(final String str, final String abbrevMarker, final int maxWidth) {
7495 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, abbrevMarker, 0, maxWidth);
7496
    }
7497
7498
    /**
7499
     * <p>Abbreviates a String using a given replacement marker. This will turn
7500
     * "Now is the time for all good men" into "...is the time for..." if "..." was defined
7501
     * as the replacement marker.</p>
7502
     *
7503
     * <p>Works like {@code abbreviate(String, String, int)}, but allows you to specify
7504
     * a "left edge" offset.  Note that this left edge is not necessarily going to
7505
     * be the leftmost character in the result, or the first character following the
7506
     * replacement marker, but it will appear somewhere in the result.
7507
     *
7508
     * <p>In no case will it return a String of length greater than {@code maxWidth}.</p>
7509
     *
7510
     * <pre>
7511
     * StringUtils.abbreviate(null, null, *, *)                 = null
7512
     * StringUtils.abbreviate("abcdefghijklmno", null, *, *)    = "abcdefghijklmno"
7513
     * StringUtils.abbreviate("", "...", 0, 4)                  = ""
7514
     * StringUtils.abbreviate("abcdefghijklmno", "---", -1, 10) = "abcdefg---"
7515
     * StringUtils.abbreviate("abcdefghijklmno", ",", 0, 10)    = "abcdefghi,"
7516
     * StringUtils.abbreviate("abcdefghijklmno", ",", 1, 10)    = "abcdefghi,"
7517
     * StringUtils.abbreviate("abcdefghijklmno", ",", 2, 10)    = "abcdefghi,"
7518
     * StringUtils.abbreviate("abcdefghijklmno", "::", 4, 10)   = "::efghij::"
7519
     * StringUtils.abbreviate("abcdefghijklmno", "...", 6, 10)  = "...ghij..."
7520
     * StringUtils.abbreviate("abcdefghijklmno", "*", 9, 10)    = "*ghijklmno"
7521
     * StringUtils.abbreviate("abcdefghijklmno", "'", 10, 10)   = "'ghijklmno"
7522
     * StringUtils.abbreviate("abcdefghijklmno", "!", 12, 10)   = "!ghijklmno"
7523
     * StringUtils.abbreviate("abcdefghij", "abra", 0, 4)       = IllegalArgumentException
7524
     * StringUtils.abbreviate("abcdefghij", "...", 5, 6)        = IllegalArgumentException
7525
     * </pre>
7526
     *
7527
     * @param str  the String to check, may be null
7528
     * @param abbrevMarker  the String used as replacement marker
7529
     * @param offset  left edge of source String
7530
     * @param maxWidth  maximum length of result String, must be at least 4
7531
     * @return abbreviated String, {@code null} if null String input
7532
     * @throws IllegalArgumentException if the width is too small
7533
     * @since 3.5
7534
     */
7535
    public static String abbreviate(final String str, final String abbrevMarker, int offset, final int maxWidth) {
7536 2 1. abbreviate : negated conditional → KILLED
2. abbreviate : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(abbrevMarker)) {
7537 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7538
        }
7539
7540
        final int abbrevMarkerLength = abbrevMarker.length();
7541 1 1. abbreviate : Replaced integer addition with subtraction → KILLED
        final int minAbbrevWidth = abbrevMarkerLength + 1;
7542 2 1. abbreviate : Replaced integer addition with subtraction → SURVIVED
2. abbreviate : Replaced integer addition with subtraction → SURVIVED
        final int minAbbrevWidthOffset = abbrevMarkerLength + abbrevMarkerLength + 1;
7543
7544 2 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : negated conditional → KILLED
        if (maxWidth < minAbbrevWidth) {
7545
            throw new IllegalArgumentException(String.format("Minimum abbreviation width is %d", minAbbrevWidth));
7546
        }
7547 2 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : negated conditional → KILLED
        if (str.length() <= maxWidth) {
7548 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7549
        }
7550 2 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : negated conditional → KILLED
        if (offset > str.length()) {
7551
            offset = str.length();
7552
        }
7553 4 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : Replaced integer subtraction with addition → SURVIVED
3. abbreviate : Replaced integer subtraction with addition → KILLED
4. abbreviate : negated conditional → KILLED
        if (str.length() - offset < maxWidth - abbrevMarkerLength) {
7554 2 1. abbreviate : Replaced integer subtraction with addition → SURVIVED
2. abbreviate : Replaced integer subtraction with addition → KILLED
            offset = str.length() - (maxWidth - abbrevMarkerLength);
7555
        }
7556 3 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : Replaced integer addition with subtraction → KILLED
3. abbreviate : negated conditional → KILLED
        if (offset <= abbrevMarkerLength+1) {
7557 2 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, maxWidth - abbrevMarkerLength) + abbrevMarker;
7558
        }
7559 2 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : negated conditional → KILLED
        if (maxWidth < minAbbrevWidthOffset) {
7560
            throw new IllegalArgumentException(String.format("Minimum abbreviation width with offset is %d", minAbbrevWidthOffset));
7561
        }
7562 4 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : Replaced integer addition with subtraction → SURVIVED
3. abbreviate : Replaced integer subtraction with addition → KILLED
4. abbreviate : negated conditional → KILLED
        if (offset + maxWidth - abbrevMarkerLength < str.length()) {
7563 2 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return abbrevMarker + abbreviate(str.substring(offset), abbrevMarker, maxWidth - abbrevMarkerLength);
7564
        }
7565 3 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : Replaced integer subtraction with addition → KILLED
3. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbrevMarker + str.substring(str.length() - (maxWidth - abbrevMarkerLength));
7566
    }
7567
7568
    /**
7569
     * <p>Abbreviates a String to the length passed, replacing the middle characters with the supplied
7570
     * replacement String.</p>
7571
     *
7572
     * <p>This abbreviation only occurs if the following criteria is met:</p>
7573
     * <ul>
7574
     * <li>Neither the String for abbreviation nor the replacement String are null or empty </li>
7575
     * <li>The length to truncate to is less than the length of the supplied String</li>
7576
     * <li>The length to truncate to is greater than 0</li>
7577
     * <li>The abbreviated String will have enough room for the length supplied replacement String
7578
     * and the first and last characters of the supplied String for abbreviation</li>
7579
     * </ul>
7580
     * <p>Otherwise, the returned String will be the same as the supplied String for abbreviation.
7581
     * </p>
7582
     *
7583
     * <pre>
7584
     * StringUtils.abbreviateMiddle(null, null, 0)      = null
7585
     * StringUtils.abbreviateMiddle("abc", null, 0)      = "abc"
7586
     * StringUtils.abbreviateMiddle("abc", ".", 0)      = "abc"
7587
     * StringUtils.abbreviateMiddle("abc", ".", 3)      = "abc"
7588
     * StringUtils.abbreviateMiddle("abcdef", ".", 4)     = "ab.f"
7589
     * </pre>
7590
     *
7591
     * @param str  the String to abbreviate, may be null
7592
     * @param middle the String to replace the middle characters with, may be null
7593
     * @param length the length to abbreviate {@code str} to.
7594
     * @return the abbreviated String if the above criteria is met, or the original String supplied for abbreviation.
7595
     * @since 2.5
7596
     */
7597
    public static String abbreviateMiddle(final String str, final String middle, final int length) {
7598 2 1. abbreviateMiddle : negated conditional → KILLED
2. abbreviateMiddle : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(middle)) {
7599 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7600
        }
7601
7602 5 1. abbreviateMiddle : changed conditional boundary → KILLED
2. abbreviateMiddle : changed conditional boundary → KILLED
3. abbreviateMiddle : Replaced integer addition with subtraction → KILLED
4. abbreviateMiddle : negated conditional → KILLED
5. abbreviateMiddle : negated conditional → KILLED
        if (length >= str.length() || length < middle.length()+2) {
7603 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7604
        }
7605
7606 1 1. abbreviateMiddle : Replaced integer subtraction with addition → KILLED
        final int targetSting = length-middle.length();
7607 3 1. abbreviateMiddle : Replaced integer division with multiplication → KILLED
2. abbreviateMiddle : Replaced integer modulus with multiplication → KILLED
3. abbreviateMiddle : Replaced integer addition with subtraction → KILLED
        final int startOffset = targetSting/2+targetSting%2;
7608 2 1. abbreviateMiddle : Replaced integer division with multiplication → KILLED
2. abbreviateMiddle : Replaced integer subtraction with addition → KILLED
        final int endOffset = str.length()-targetSting/2;
7609
7610
        final StringBuilder builder = new StringBuilder(length);
7611
        builder.append(str.substring(0,startOffset));
7612
        builder.append(middle);
7613
        builder.append(str.substring(endOffset));
7614
7615 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
7616
    }
7617
7618
    // Difference
7619
    //-----------------------------------------------------------------------
7620
    /**
7621
     * <p>Compares two Strings, and returns the portion where they differ.
7622
     * More precisely, return the remainder of the second String,
7623
     * starting from where it's different from the first. This means that
7624
     * the difference between "abc" and "ab" is the empty String and not "c". </p>
7625
     *
7626
     * <p>For example,
7627
     * {@code difference("i am a machine", "i am a robot") -> "robot"}.</p>
7628
     *
7629
     * <pre>
7630
     * StringUtils.difference(null, null) = null
7631
     * StringUtils.difference("", "") = ""
7632
     * StringUtils.difference("", "abc") = "abc"
7633
     * StringUtils.difference("abc", "") = ""
7634
     * StringUtils.difference("abc", "abc") = ""
7635
     * StringUtils.difference("abc", "ab") = ""
7636
     * StringUtils.difference("ab", "abxyz") = "xyz"
7637
     * StringUtils.difference("abcde", "abxyz") = "xyz"
7638
     * StringUtils.difference("abcde", "xyz") = "xyz"
7639
     * </pre>
7640
     *
7641
     * @param str1  the first String, may be null
7642
     * @param str2  the second String, may be null
7643
     * @return the portion of str2 where it differs from str1; returns the
7644
     * empty String if they are equal
7645
     * @see #indexOfDifference(CharSequence,CharSequence)
7646
     * @since 2.0
7647
     */
7648
    public static String difference(final String str1, final String str2) {
7649 1 1. difference : negated conditional → KILLED
        if (str1 == null) {
7650 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str2;
7651
        }
7652 1 1. difference : negated conditional → KILLED
        if (str2 == null) {
7653 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str1;
7654
        }
7655
        final int at = indexOfDifference(str1, str2);
7656 1 1. difference : negated conditional → KILLED
        if (at == INDEX_NOT_FOUND) {
7657 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7658
        }
7659 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str2.substring(at);
7660
    }
7661
7662
    /**
7663
     * <p>Compares two CharSequences, and returns the index at which the
7664
     * CharSequences begin to differ.</p>
7665
     *
7666
     * <p>For example,
7667
     * {@code indexOfDifference("i am a machine", "i am a robot") -> 7}</p>
7668
     *
7669
     * <pre>
7670
     * StringUtils.indexOfDifference(null, null) = -1
7671
     * StringUtils.indexOfDifference("", "") = -1
7672
     * StringUtils.indexOfDifference("", "abc") = 0
7673
     * StringUtils.indexOfDifference("abc", "") = 0
7674
     * StringUtils.indexOfDifference("abc", "abc") = -1
7675
     * StringUtils.indexOfDifference("ab", "abxyz") = 2
7676
     * StringUtils.indexOfDifference("abcde", "abxyz") = 2
7677
     * StringUtils.indexOfDifference("abcde", "xyz") = 0
7678
     * </pre>
7679
     *
7680
     * @param cs1  the first CharSequence, may be null
7681
     * @param cs2  the second CharSequence, may be null
7682
     * @return the index where cs1 and cs2 begin to differ; -1 if they are equal
7683
     * @since 2.0
7684
     * @since 3.0 Changed signature from indexOfDifference(String, String) to
7685
     * indexOfDifference(CharSequence, CharSequence)
7686
     */
7687
    public static int indexOfDifference(final CharSequence cs1, final CharSequence cs2) {
7688 1 1. indexOfDifference : negated conditional → KILLED
        if (cs1 == cs2) {
7689 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7690
        }
7691 2 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
        if (cs1 == null || cs2 == null) {
7692 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
7693
        }
7694
        int i;
7695 5 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : changed conditional boundary → KILLED
3. indexOfDifference : Changed increment from 1 to -1 → KILLED
4. indexOfDifference : negated conditional → KILLED
5. indexOfDifference : negated conditional → KILLED
        for (i = 0; i < cs1.length() && i < cs2.length(); ++i) {
7696 1 1. indexOfDifference : negated conditional → KILLED
            if (cs1.charAt(i) != cs2.charAt(i)) {
7697
                break;
7698
            }
7699
        }
7700 4 1. indexOfDifference : changed conditional boundary → SURVIVED
2. indexOfDifference : changed conditional boundary → SURVIVED
3. indexOfDifference : negated conditional → KILLED
4. indexOfDifference : negated conditional → KILLED
        if (i < cs2.length() || i < cs1.length()) {
7701 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return i;
7702
        }
7703 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
        return INDEX_NOT_FOUND;
7704
    }
7705
7706
    /**
7707
     * <p>Compares all CharSequences in an array and returns the index at which the
7708
     * CharSequences begin to differ.</p>
7709
     *
7710
     * <p>For example,
7711
     * <code>indexOfDifference(new String[] {"i am a machine", "i am a robot"}) -&gt; 7</code></p>
7712
     *
7713
     * <pre>
7714
     * StringUtils.indexOfDifference(null) = -1
7715
     * StringUtils.indexOfDifference(new String[] {}) = -1
7716
     * StringUtils.indexOfDifference(new String[] {"abc"}) = -1
7717
     * StringUtils.indexOfDifference(new String[] {null, null}) = -1
7718
     * StringUtils.indexOfDifference(new String[] {"", ""}) = -1
7719
     * StringUtils.indexOfDifference(new String[] {"", null}) = 0
7720
     * StringUtils.indexOfDifference(new String[] {"abc", null, null}) = 0
7721
     * StringUtils.indexOfDifference(new String[] {null, null, "abc"}) = 0
7722
     * StringUtils.indexOfDifference(new String[] {"", "abc"}) = 0
7723
     * StringUtils.indexOfDifference(new String[] {"abc", ""}) = 0
7724
     * StringUtils.indexOfDifference(new String[] {"abc", "abc"}) = -1
7725
     * StringUtils.indexOfDifference(new String[] {"abc", "a"}) = 1
7726
     * StringUtils.indexOfDifference(new String[] {"ab", "abxyz"}) = 2
7727
     * StringUtils.indexOfDifference(new String[] {"abcde", "abxyz"}) = 2
7728
     * StringUtils.indexOfDifference(new String[] {"abcde", "xyz"}) = 0
7729
     * StringUtils.indexOfDifference(new String[] {"xyz", "abcde"}) = 0
7730
     * StringUtils.indexOfDifference(new String[] {"i am a machine", "i am a robot"}) = 7
7731
     * </pre>
7732
     *
7733
     * @param css  array of CharSequences, entries may be null
7734
     * @return the index where the strings begin to differ; -1 if they are all equal
7735
     * @since 2.4
7736
     * @since 3.0 Changed signature from indexOfDifference(String...) to indexOfDifference(CharSequence...)
7737
     */
7738
    public static int indexOfDifference(final CharSequence... css) {
7739 3 1. indexOfDifference : changed conditional boundary → SURVIVED
2. indexOfDifference : negated conditional → KILLED
3. indexOfDifference : negated conditional → KILLED
        if (css == null || css.length <= 1) {
7740 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7741
        }
7742
        boolean anyStringNull = false;
7743
        boolean allStringsNull = true;
7744
        final int arrayLen = css.length;
7745
        int shortestStrLen = Integer.MAX_VALUE;
7746
        int longestStrLen = 0;
7747
7748
        // find the min and max string lengths; this avoids checking to make
7749
        // sure we are not exceeding the length of the string each time through
7750
        // the bottom loop.
7751 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
        for (CharSequence cs : css) {
7752 1 1. indexOfDifference : negated conditional → KILLED
            if (cs == null) {
7753
                anyStringNull = true;
7754
                shortestStrLen = 0;
7755
            } else {
7756
                allStringsNull = false;
7757
                shortestStrLen = Math.min(cs.length(), shortestStrLen);
7758
                longestStrLen = Math.max(cs.length(), longestStrLen);
7759
            }
7760
        }
7761
7762
        // handle lists containing all nulls or all empty strings
7763 3 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
3. indexOfDifference : negated conditional → KILLED
        if (allStringsNull || longestStrLen == 0 && !anyStringNull) {
7764 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7765
        }
7766
7767
        // handle lists containing some nulls or some empty strings
7768 1 1. indexOfDifference : negated conditional → KILLED
        if (shortestStrLen == 0) {
7769 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
7770
        }
7771
7772
        // find the position with the first difference across all strings
7773
        int firstDiff = -1;
7774 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
        for (int stringPos = 0; stringPos < shortestStrLen; stringPos++) {
7775
            final char comparisonChar = css[0].charAt(stringPos);
7776 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
            for (int arrayPos = 1; arrayPos < arrayLen; arrayPos++) {
7777 1 1. indexOfDifference : negated conditional → KILLED
                if (css[arrayPos].charAt(stringPos) != comparisonChar) {
7778
                    firstDiff = stringPos;
7779
                    break;
7780
                }
7781
            }
7782 1 1. indexOfDifference : negated conditional → KILLED
            if (firstDiff != -1) {
7783
                break;
7784
            }
7785
        }
7786
7787 2 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
        if (firstDiff == -1 && shortestStrLen != longestStrLen) {
7788
            // we compared all of the characters up to the length of the
7789
            // shortest string and didn't find a match, but the string lengths
7790
            // vary, so return the length of the shortest string.
7791 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return shortestStrLen;
7792
        }
7793 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return firstDiff;
7794
    }
7795
7796
    /**
7797
     * <p>Compares all Strings in an array and returns the initial sequence of
7798
     * characters that is common to all of them.</p>
7799
     *
7800
     * <p>For example,
7801
     * <code>getCommonPrefix(new String[] {"i am a machine", "i am a robot"}) -&gt; "i am a "</code></p>
7802
     *
7803
     * <pre>
7804
     * StringUtils.getCommonPrefix(null) = ""
7805
     * StringUtils.getCommonPrefix(new String[] {}) = ""
7806
     * StringUtils.getCommonPrefix(new String[] {"abc"}) = "abc"
7807
     * StringUtils.getCommonPrefix(new String[] {null, null}) = ""
7808
     * StringUtils.getCommonPrefix(new String[] {"", ""}) = ""
7809
     * StringUtils.getCommonPrefix(new String[] {"", null}) = ""
7810
     * StringUtils.getCommonPrefix(new String[] {"abc", null, null}) = ""
7811
     * StringUtils.getCommonPrefix(new String[] {null, null, "abc"}) = ""
7812
     * StringUtils.getCommonPrefix(new String[] {"", "abc"}) = ""
7813
     * StringUtils.getCommonPrefix(new String[] {"abc", ""}) = ""
7814
     * StringUtils.getCommonPrefix(new String[] {"abc", "abc"}) = "abc"
7815
     * StringUtils.getCommonPrefix(new String[] {"abc", "a"}) = "a"
7816
     * StringUtils.getCommonPrefix(new String[] {"ab", "abxyz"}) = "ab"
7817
     * StringUtils.getCommonPrefix(new String[] {"abcde", "abxyz"}) = "ab"
7818
     * StringUtils.getCommonPrefix(new String[] {"abcde", "xyz"}) = ""
7819
     * StringUtils.getCommonPrefix(new String[] {"xyz", "abcde"}) = ""
7820
     * StringUtils.getCommonPrefix(new String[] {"i am a machine", "i am a robot"}) = "i am a "
7821
     * </pre>
7822
     *
7823
     * @param strs  array of String objects, entries may be null
7824
     * @return the initial sequence of characters that are common to all Strings
7825
     * in the array; empty String if the array is null, the elements are all null
7826
     * or if there is no common prefix.
7827
     * @since 2.4
7828
     */
7829
    public static String getCommonPrefix(final String... strs) {
7830 2 1. getCommonPrefix : negated conditional → KILLED
2. getCommonPrefix : negated conditional → KILLED
        if (strs == null || strs.length == 0) {
7831 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7832
        }
7833
        final int smallestIndexOfDiff = indexOfDifference(strs);
7834 1 1. getCommonPrefix : negated conditional → KILLED
        if (smallestIndexOfDiff == INDEX_NOT_FOUND) {
7835
            // all strings were identical
7836 1 1. getCommonPrefix : negated conditional → KILLED
            if (strs[0] == null) {
7837 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return EMPTY;
7838
            }
7839 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs[0];
7840 1 1. getCommonPrefix : negated conditional → KILLED
        } else if (smallestIndexOfDiff == 0) {
7841
            // there were no common initial characters
7842 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7843
        } else {
7844
            // we found a common initial character sequence
7845 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs[0].substring(0, smallestIndexOfDiff);
7846
        }
7847
    }
7848
7849
    // Misc
7850
    //-----------------------------------------------------------------------
7851
    /**
7852
     * <p>Find the Levenshtein distance between two Strings.</p>
7853
     *
7854
     * <p>This is the number of changes needed to change one String into
7855
     * another, where each change is a single character modification (deletion,
7856
     * insertion or substitution).</p>
7857
     *
7858
     * <p>The implementation uses a single-dimensional array of length s.length() + 1. See 
7859
     * <a href="http://blog.softwx.net/2014/12/optimizing-levenshtein-algorithm-in-c.html">
7860
     * http://blog.softwx.net/2014/12/optimizing-levenshtein-algorithm-in-c.html</a> for details.</p>
7861
     *
7862
     * <pre>
7863
     * StringUtils.getLevenshteinDistance(null, *)             = IllegalArgumentException
7864
     * StringUtils.getLevenshteinDistance(*, null)             = IllegalArgumentException
7865
     * StringUtils.getLevenshteinDistance("","")               = 0
7866
     * StringUtils.getLevenshteinDistance("","a")              = 1
7867
     * StringUtils.getLevenshteinDistance("aaapppp", "")       = 7
7868
     * StringUtils.getLevenshteinDistance("frog", "fog")       = 1
7869
     * StringUtils.getLevenshteinDistance("fly", "ant")        = 3
7870
     * StringUtils.getLevenshteinDistance("elephant", "hippo") = 7
7871
     * StringUtils.getLevenshteinDistance("hippo", "elephant") = 7
7872
     * StringUtils.getLevenshteinDistance("hippo", "zzzzzzzz") = 8
7873
     * StringUtils.getLevenshteinDistance("hello", "hallo")    = 1
7874
     * </pre>
7875
     *
7876
     * @param s  the first String, must not be null
7877
     * @param t  the second String, must not be null
7878
     * @return result distance
7879
     * @throws IllegalArgumentException if either String input {@code null}
7880
     * @since 3.0 Changed signature from getLevenshteinDistance(String, String) to
7881
     * getLevenshteinDistance(CharSequence, CharSequence)
7882
     */
7883
    public static int getLevenshteinDistance(CharSequence s, CharSequence t) {
7884 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (s == null || t == null) {
7885
            throw new IllegalArgumentException("Strings must not be null");
7886
        }
7887
7888
        int n = s.length();
7889
        int m = t.length();
7890
7891 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (n == 0) {
7892 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return m;
7893 1 1. getLevenshteinDistance : negated conditional → KILLED
        } else if (m == 0) {
7894 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return n;
7895
        }
7896
7897 2 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
        if (n > m) {
7898
            // swap the input strings to consume less memory
7899
            final CharSequence tmp = s;
7900
            s = t;
7901
            t = tmp;
7902
            n = m;
7903
            m = t.length();
7904
        }
7905
7906 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        final int p[] = new int[n + 1];
7907
        // indexes into strings s and t
7908
        int i; // iterates through s
7909
        int j; // iterates through t
7910
        int upper_left;
7911
        int upper;
7912
7913
        char t_j; // jth character of t
7914
        int cost;
7915
7916 3 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
3. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
        for (i = 0; i <= n; i++) {
7917
            p[i] = i;
7918
        }
7919
7920 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        for (j = 1; j <= m; j++) {
7921
            upper_left = p[0];
7922 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            t_j = t.charAt(j - 1);
7923
            p[0] = j;
7924
7925 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
            for (i = 1; i <= n; i++) {
7926
                upper = p[i];
7927 2 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
                cost = s.charAt(i - 1) == t_j ? 0 : 1;
7928
                // minimum of cell to the left+1, to the top+1, diagonally left and up +cost
7929 4 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
4. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
                p[i] = Math.min(Math.min(p[i - 1] + 1, p[i] + 1), upper_left + cost);
7930
                upper_left = upper;
7931
            }
7932
        }
7933
7934 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return p[n];
7935
    }
7936
7937
    /**
7938
     * <p>Find the Levenshtein distance between two Strings if it's less than or equal to a given
7939
     * threshold.</p>
7940
     *
7941
     * <p>This is the number of changes needed to change one String into
7942
     * another, where each change is a single character modification (deletion,
7943
     * insertion or substitution).</p>
7944
     *
7945
     * <p>This implementation follows from Algorithms on Strings, Trees and Sequences by Dan Gusfield
7946
     * and Chas Emerick's implementation of the Levenshtein distance algorithm from
7947
     * <a href="http://www.merriampark.com/ld.htm">http://www.merriampark.com/ld.htm</a></p>
7948
     *
7949
     * <pre>
7950
     * StringUtils.getLevenshteinDistance(null, *, *)             = IllegalArgumentException
7951
     * StringUtils.getLevenshteinDistance(*, null, *)             = IllegalArgumentException
7952
     * StringUtils.getLevenshteinDistance(*, *, -1)               = IllegalArgumentException
7953
     * StringUtils.getLevenshteinDistance("","", 0)               = 0
7954
     * StringUtils.getLevenshteinDistance("aaapppp", "", 8)       = 7
7955
     * StringUtils.getLevenshteinDistance("aaapppp", "", 7)       = 7
7956
     * StringUtils.getLevenshteinDistance("aaapppp", "", 6))      = -1
7957
     * StringUtils.getLevenshteinDistance("elephant", "hippo", 7) = 7
7958
     * StringUtils.getLevenshteinDistance("elephant", "hippo", 6) = -1
7959
     * StringUtils.getLevenshteinDistance("hippo", "elephant", 7) = 7
7960
     * StringUtils.getLevenshteinDistance("hippo", "elephant", 6) = -1
7961
     * </pre>
7962
     *
7963
     * @param s  the first String, must not be null
7964
     * @param t  the second String, must not be null
7965
     * @param threshold the target threshold, must not be negative
7966
     * @return result distance, or {@code -1} if the distance would be greater than the threshold
7967
     * @throws IllegalArgumentException if either String input {@code null} or negative threshold
7968
     */
7969
    public static int getLevenshteinDistance(CharSequence s, CharSequence t, final int threshold) {
7970 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (s == null || t == null) {
7971
            throw new IllegalArgumentException("Strings must not be null");
7972
        }
7973 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (threshold < 0) {
7974
            throw new IllegalArgumentException("Threshold must not be negative");
7975
        }
7976
7977
        /*
7978
        This implementation only computes the distance if it's less than or equal to the
7979
        threshold value, returning -1 if it's greater.  The advantage is performance: unbounded
7980
        distance is O(nm), but a bound of k allows us to reduce it to O(km) time by only
7981
        computing a diagonal stripe of width 2k + 1 of the cost table.
7982
        It is also possible to use this to compute the unbounded Levenshtein distance by starting
7983
        the threshold at 1 and doubling each time until the distance is found; this is O(dm), where
7984
        d is the distance.
7985
7986
        One subtlety comes from needing to ignore entries on the border of our stripe
7987
        eg.
7988
        p[] = |#|#|#|*
7989
        d[] =  *|#|#|#|
7990
        We must ignore the entry to the left of the leftmost member
7991
        We must ignore the entry above the rightmost member
7992
7993
        Another subtlety comes from our stripe running off the matrix if the strings aren't
7994
        of the same size.  Since string s is always swapped to be the shorter of the two,
7995
        the stripe will always run off to the upper right instead of the lower left of the matrix.
7996
7997
        As a concrete example, suppose s is of length 5, t is of length 7, and our threshold is 1.
7998
        In this case we're going to walk a stripe of length 3.  The matrix would look like so:
7999
8000
           1 2 3 4 5
8001
        1 |#|#| | | |
8002
        2 |#|#|#| | |
8003
        3 | |#|#|#| |
8004
        4 | | |#|#|#|
8005
        5 | | | |#|#|
8006
        6 | | | | |#|
8007
        7 | | | | | |
8008
8009
        Note how the stripe leads off the table as there is no possible way to turn a string of length 5
8010
        into one of length 7 in edit distance of 1.
8011
8012
        Additionally, this implementation decreases memory usage by using two
8013
        single-dimensional arrays and swapping them back and forth instead of allocating
8014
        an entire n by m matrix.  This requires a few minor changes, such as immediately returning
8015
        when it's detected that the stripe has run off the matrix and initially filling the arrays with
8016
        large values so that entries we don't compute are ignored.
8017
8018
        See Algorithms on Strings, Trees and Sequences by Dan Gusfield for some discussion.
8019
         */
8020
8021
        int n = s.length(); // length of s
8022
        int m = t.length(); // length of t
8023
8024
        // if one string is empty, the edit distance is necessarily the length of the other
8025 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (n == 0) {
8026 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
3. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return m <= threshold ? m : -1;
8027 1 1. getLevenshteinDistance : negated conditional → KILLED
        } else if (m == 0) {
8028 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
3. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return n <= threshold ? n : -1;
8029
        }
8030
        // no need to calculate the distance if the length difference is greater than the threshold
8031 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        else if (Math.abs(n - m) > threshold) {
8032 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return -1;
8033
        }
8034
8035 2 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
        if (n > m) {
8036
            // swap the two strings to consume less memory
8037
            final CharSequence tmp = s;
8038
            s = t;
8039
            t = tmp;
8040
            n = m;
8041
            m = t.length();
8042
        }
8043
8044 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        int p[] = new int[n + 1]; // 'previous' cost array, horizontally
8045 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        int d[] = new int[n + 1]; // cost array, horizontally
8046
        int _d[]; // placeholder to assist in swapping p and d
8047
8048
        // fill in starting table values
8049 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        final int boundary = Math.min(n, threshold) + 1;
8050 3 1. getLevenshteinDistance : negated conditional → SURVIVED
2. getLevenshteinDistance : changed conditional boundary → KILLED
3. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
        for (int i = 0; i < boundary; i++) {
8051
            p[i] = i;
8052
        }
8053
        // these fills ensure that the value above the rightmost entry of our
8054
        // stripe will be ignored in following loop iterations
8055 1 1. getLevenshteinDistance : removed call to java/util/Arrays::fill → SURVIVED
        Arrays.fill(p, boundary, p.length, Integer.MAX_VALUE);
8056 1 1. getLevenshteinDistance : removed call to java/util/Arrays::fill → SURVIVED
        Arrays.fill(d, Integer.MAX_VALUE);
8057
8058
        // iterates through t
8059 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        for (int j = 1; j <= m; j++) {
8060 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            final char t_j = t.charAt(j - 1); // jth character of t
8061
            d[0] = j;
8062
8063
            // compute stripe indices, constrain to array size
8064 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            final int min = Math.max(1, j - threshold);
8065 4 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : Replaced integer subtraction with addition → SURVIVED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
4. getLevenshteinDistance : negated conditional → KILLED
            final int max = j > Integer.MAX_VALUE - threshold ? n : Math.min(n, j + threshold);
8066
8067
            // the stripe may lead off of the table if s and t are of different sizes
8068 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
            if (min > max) {
8069 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
                return -1;
8070
            }
8071
8072
            // ignore entry left of leftmost
8073 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
            if (min > 1) {
8074 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                d[min - 1] = Integer.MAX_VALUE;
8075
            }
8076
8077
            // iterates through [min, max] in s
8078 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
            for (int i = min; i <= max; i++) {
8079 2 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
                if (s.charAt(i - 1) == t_j) {
8080
                    // diagonally left and up
8081 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                    d[i] = p[i - 1];
8082
                } else {
8083
                    // 1 + minimum of cell to the left, to the top, diagonally left and up
8084 3 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
                    d[i] = 1 + Math.min(Math.min(d[i - 1], p[i]), p[i - 1]);
8085
                }
8086
            }
8087
8088
            // copy current distance counts to 'previous row' distance counts
8089
            _d = p;
8090
            p = d;
8091
            d = _d;
8092
        }
8093
8094
        // if p[n] is greater than the threshold, there's no guarantee on it being the correct
8095
        // distance
8096 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (p[n] <= threshold) {
8097 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return p[n];
8098
        }
8099 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return -1;
8100
    }
8101
    
8102
    /**
8103
     * <p>Find the Jaro Winkler Distance which indicates the similarity score between two Strings.</p>
8104
     *
8105
     * <p>The Jaro measure is the weighted sum of percentage of matched characters from each file and transposed characters. 
8106
     * Winkler increased this measure for matching initial characters.</p>
8107
     *
8108
     * <p>This implementation is based on the Jaro Winkler similarity algorithm
8109
     * from <a href="http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance">http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance</a>.</p>
8110
     * 
8111
     * <pre>
8112
     * StringUtils.getJaroWinklerDistance(null, null)          = IllegalArgumentException
8113
     * StringUtils.getJaroWinklerDistance("","")               = 0.0
8114
     * StringUtils.getJaroWinklerDistance("","a")              = 0.0
8115
     * StringUtils.getJaroWinklerDistance("aaapppp", "")       = 0.0
8116
     * StringUtils.getJaroWinklerDistance("frog", "fog")       = 0.93
8117
     * StringUtils.getJaroWinklerDistance("fly", "ant")        = 0.0
8118
     * StringUtils.getJaroWinklerDistance("elephant", "hippo") = 0.44
8119
     * StringUtils.getJaroWinklerDistance("hippo", "elephant") = 0.44
8120
     * StringUtils.getJaroWinklerDistance("hippo", "zzzzzzzz") = 0.0
8121
     * StringUtils.getJaroWinklerDistance("hello", "hallo")    = 0.88
8122
     * StringUtils.getJaroWinklerDistance("ABC Corporation", "ABC Corp") = 0.93
8123
     * StringUtils.getJaroWinklerDistance("D N H Enterprises Inc", "D &amp; H Enterprises, Inc.") = 0.95
8124
     * StringUtils.getJaroWinklerDistance("My Gym Children's Fitness Center", "My Gym. Childrens Fitness") = 0.92
8125
     * StringUtils.getJaroWinklerDistance("PENNSYLVANIA", "PENNCISYLVNIA") = 0.88
8126
     * </pre>
8127
     *
8128
     * @param first the first String, must not be null
8129
     * @param second the second String, must not be null
8130
     * @return result distance
8131
     * @throws IllegalArgumentException if either String input {@code null}
8132
     * @since 3.3
8133
     * @deprecated as of 3.6, due to a misleading name, use {@link #getJaroWinklerSimilarity(CharSequence, CharSequence)} instead
8134
     */
8135
    @Deprecated
8136
    public static double getJaroWinklerDistance(final CharSequence first, final CharSequence second) {
8137
        final double DEFAULT_SCALING_FACTOR = 0.1;
8138
8139 2 1. getJaroWinklerDistance : negated conditional → KILLED
2. getJaroWinklerDistance : negated conditional → KILLED
        if (first == null || second == null) {
8140
            throw new IllegalArgumentException("Strings must not be null");
8141
        }
8142
8143
        final int[] mtp = matches(first, second);
8144
        final double m = mtp[0];
8145 1 1. getJaroWinklerDistance : negated conditional → KILLED
        if (m == 0) {
8146 1 1. getJaroWinklerDistance : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED
            return 0D;
8147
        }
8148 7 1. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
4. getJaroWinklerDistance : Replaced double subtraction with addition → KILLED
5. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
6. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
7. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
        final double j = ((m / first.length() + m / second.length() + (m - mtp[1]) / m)) / 3;
8149 7 1. getJaroWinklerDistance : changed conditional boundary → SURVIVED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
4. getJaroWinklerDistance : Replaced double subtraction with addition → KILLED
5. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
6. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
7. getJaroWinklerDistance : negated conditional → KILLED
        final double jw = j < 0.7D ? j : j + Math.min(DEFAULT_SCALING_FACTOR, 1D / mtp[3]) * mtp[2] * (1D - j);
8150 3 1. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED
        return Math.round(jw * 100.0D) / 100.0D;
8151
    }
8152
8153
    /**
8154
     * <p>Find the Jaro Winkler Similarity which indicates the similarity score between two Strings.</p>
8155
     *
8156
     * <p>The Jaro measure is the weighted sum of percentage of matched characters from each file and transposed characters. 
8157
     * Winkler increased this measure for matching initial characters.</p>
8158
     *
8159
     * <p>This implementation is based on the Jaro Winkler similarity algorithm
8160
     * from <a href="http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance">http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance</a>.</p>
8161
     * 
8162
     * <pre>
8163
     * StringUtils.getJaroWinklerSimilarity(null, null)          = IllegalArgumentException
8164
     * StringUtils.getJaroWinklerSimilarity("","")               = 0.0
8165
     * StringUtils.getJaroWinklerSimilarity("","a")              = 0.0
8166
     * StringUtils.getJaroWinklerSimilarity("aaapppp", "")       = 0.0
8167
     * StringUtils.getJaroWinklerSimilarity("frog", "fog")       = 0.93
8168
     * StringUtils.getJaroWinklerSimilarity("fly", "ant")        = 0.0
8169
     * StringUtils.getJaroWinklerSimilarity("elephant", "hippo") = 0.44
8170
     * StringUtils.getJaroWinklerSimilarity("hippo", "elephant") = 0.44
8171
     * StringUtils.getJaroWinklerSimilarity("hippo", "zzzzzzzz") = 0.0
8172
     * StringUtils.getJaroWinklerSimilarity("hello", "hallo")    = 0.88
8173
     * StringUtils.getJaroWinklerSimilarity("ABC Corporation", "ABC Corp") = 0.93
8174
     * StringUtils.getJaroWinklerSimilarity("D N H Enterprises Inc", "D &amp; H Enterprises, Inc.") = 0.95
8175
     * StringUtils.getJaroWinklerSimilarity("My Gym Children's Fitness Center", "My Gym. Childrens Fitness") = 0.92
8176
     * StringUtils.getJaroWinklerSimilarity("PENNSYLVANIA", "PENNCISYLVNIA") = 0.88
8177
     * </pre>
8178
     *
8179
     * @param first the first String, must not be null
8180
     * @param second the second String, must not be null
8181
     * @return result similarity
8182
     * @throws IllegalArgumentException if either String input {@code null}
8183
     * @since 3.6
8184
     */
8185
    public static double getJaroWinklerSimilarity(final CharSequence first, final CharSequence second) {
8186
        final double DEFAULT_SCALING_FACTOR = 0.1;
8187
8188 2 1. getJaroWinklerSimilarity : negated conditional → KILLED
2. getJaroWinklerSimilarity : negated conditional → KILLED
        if (first == null || second == null) {
8189
            throw new IllegalArgumentException("Strings must not be null");
8190
        }
8191
8192
        final int[] mtp = matches(first, second);
8193
        final double m = mtp[0];
8194 1 1. getJaroWinklerSimilarity : negated conditional → KILLED
        if (m == 0) {
8195 1 1. getJaroWinklerSimilarity : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED
            return 0D;
8196
        }
8197 7 1. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
4. getJaroWinklerSimilarity : Replaced double subtraction with addition → KILLED
5. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
6. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
7. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
        final double j = ((m / first.length() + m / second.length() + (m - mtp[1]) / m)) / 3;
8198 7 1. getJaroWinklerSimilarity : changed conditional boundary → SURVIVED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
4. getJaroWinklerSimilarity : Replaced double subtraction with addition → KILLED
5. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
6. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
7. getJaroWinklerSimilarity : negated conditional → KILLED
        final double jw = j < 0.7D ? j : j + Math.min(DEFAULT_SCALING_FACTOR, 1D / mtp[3]) * mtp[2] * (1D - j);
8199 3 1. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED
        return Math.round(jw * 100.0D) / 100.0D;
8200
    }
8201
8202
    private static int[] matches(final CharSequence first, final CharSequence second) {
8203
        CharSequence max, min;
8204 2 1. matches : changed conditional boundary → SURVIVED
2. matches : negated conditional → KILLED
        if (first.length() > second.length()) {
8205
            max = first;
8206
            min = second;
8207
        } else {
8208
            max = second;
8209
            min = first;
8210
        }
8211 2 1. matches : Replaced integer division with multiplication → KILLED
2. matches : Replaced integer subtraction with addition → KILLED
        final int range = Math.max(max.length() / 2 - 1, 0);
8212
        final int[] matchIndexes = new int[min.length()];
8213 1 1. matches : removed call to java/util/Arrays::fill → KILLED
        Arrays.fill(matchIndexes, -1);
8214
        final boolean[] matchFlags = new boolean[max.length()];
8215
        int matches = 0;
8216 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < min.length(); mi++) {
8217
            final char c1 = min.charAt(mi);
8218 6 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : Replaced integer subtraction with addition → KILLED
4. matches : Replaced integer addition with subtraction → KILLED
5. matches : Replaced integer addition with subtraction → KILLED
6. matches : negated conditional → KILLED
            for (int xi = Math.max(mi - range, 0), xn = Math.min(mi + range + 1, max.length()); xi < xn; xi++) {
8219 2 1. matches : negated conditional → KILLED
2. matches : negated conditional → KILLED
                if (!matchFlags[xi] && c1 == max.charAt(xi)) {
8220
                    matchIndexes[mi] = xi;
8221
                    matchFlags[xi] = true;
8222 1 1. matches : Changed increment from 1 to -1 → KILLED
                    matches++;
8223
                    break;
8224
                }
8225
            }
8226
        }
8227
        final char[] ms1 = new char[matches];
8228
        final char[] ms2 = new char[matches];
8229 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int i = 0, si = 0; i < min.length(); i++) {
8230 1 1. matches : negated conditional → KILLED
            if (matchIndexes[i] != -1) {
8231
                ms1[si] = min.charAt(i);
8232 1 1. matches : Changed increment from 1 to -1 → KILLED
                si++;
8233
            }
8234
        }
8235 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int i = 0, si = 0; i < max.length(); i++) {
8236 1 1. matches : negated conditional → KILLED
            if (matchFlags[i]) {
8237
                ms2[si] = max.charAt(i);
8238 1 1. matches : Changed increment from 1 to -1 → KILLED
                si++;
8239
            }
8240
        }
8241
        int transpositions = 0;
8242 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < ms1.length; mi++) {
8243 1 1. matches : negated conditional → KILLED
            if (ms1[mi] != ms2[mi]) {
8244 1 1. matches : Changed increment from 1 to -1 → KILLED
                transpositions++;
8245
            }
8246
        }
8247
        int prefix = 0;
8248 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < min.length(); mi++) {
8249 1 1. matches : negated conditional → KILLED
            if (first.charAt(mi) == second.charAt(mi)) {
8250 1 1. matches : Changed increment from 1 to -1 → KILLED
                prefix++;
8251
            } else {
8252
                break;
8253
            }
8254
        }
8255 2 1. matches : Replaced integer division with multiplication → KILLED
2. matches : mutated return of Object value for org/apache/commons/lang3/StringUtils::matches to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new int[] { matches, transpositions / 2, prefix, max.length() };
8256
    }
8257
8258
    /**
8259
     * <p>Find the Fuzzy Distance which indicates the similarity score between two Strings.</p>
8260
     *
8261
     * <p>This string matching algorithm is similar to the algorithms of editors such as Sublime Text,
8262
     * TextMate, Atom and others. One point is given for every matched character. Subsequent
8263
     * matches yield two bonus points. A higher score indicates a higher similarity.</p>
8264
     *
8265
     * <pre>
8266
     * StringUtils.getFuzzyDistance(null, null, null)                                    = IllegalArgumentException
8267
     * StringUtils.getFuzzyDistance("", "", Locale.ENGLISH)                              = 0
8268
     * StringUtils.getFuzzyDistance("Workshop", "b", Locale.ENGLISH)                     = 0
8269
     * StringUtils.getFuzzyDistance("Room", "o", Locale.ENGLISH)                         = 1
8270
     * StringUtils.getFuzzyDistance("Workshop", "w", Locale.ENGLISH)                     = 1
8271
     * StringUtils.getFuzzyDistance("Workshop", "ws", Locale.ENGLISH)                    = 2
8272
     * StringUtils.getFuzzyDistance("Workshop", "wo", Locale.ENGLISH)                    = 4
8273
     * StringUtils.getFuzzyDistance("Apache Software Foundation", "asf", Locale.ENGLISH) = 3
8274
     * </pre>
8275
     *
8276
     * @param term a full term that should be matched against, must not be null
8277
     * @param query the query that will be matched against a term, must not be null
8278
     * @param locale This string matching logic is case insensitive. A locale is necessary to normalize
8279
     *  both Strings to lower case.
8280
     * @return result score
8281
     * @throws IllegalArgumentException if either String input {@code null} or Locale input {@code null}
8282
     * @since 3.4
8283
     */
8284
    public static int getFuzzyDistance(final CharSequence term, final CharSequence query, final Locale locale) {
8285 2 1. getFuzzyDistance : negated conditional → KILLED
2. getFuzzyDistance : negated conditional → KILLED
        if (term == null || query == null) {
8286
            throw new IllegalArgumentException("Strings must not be null");
8287 1 1. getFuzzyDistance : negated conditional → KILLED
        } else if (locale == null) {
8288
            throw new IllegalArgumentException("Locale must not be null");
8289
        }
8290
8291
        // fuzzy logic is case insensitive. We normalize the Strings to lower
8292
        // case right from the start. Turning characters to lower case
8293
        // via Character.toLowerCase(char) is unfortunately insufficient
8294
        // as it does not accept a locale.
8295
        final String termLowerCase = term.toString().toLowerCase(locale);
8296
        final String queryLowerCase = query.toString().toLowerCase(locale);
8297
8298
        // the resulting score
8299
        int score = 0;
8300
8301
        // the position in the term which will be scanned next for potential
8302
        // query character matches
8303
        int termIndex = 0;
8304
8305
        // index of the previously matched character in the term
8306
        int previousMatchingCharacterIndex = Integer.MIN_VALUE;
8307
8308 3 1. getFuzzyDistance : changed conditional boundary → KILLED
2. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
3. getFuzzyDistance : negated conditional → KILLED
        for (int queryIndex = 0; queryIndex < queryLowerCase.length(); queryIndex++) {
8309
            final char queryChar = queryLowerCase.charAt(queryIndex);
8310
8311
            boolean termCharacterMatchFound = false;
8312 4 1. getFuzzyDistance : changed conditional boundary → KILLED
2. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
3. getFuzzyDistance : negated conditional → KILLED
4. getFuzzyDistance : negated conditional → KILLED
            for (; termIndex < termLowerCase.length() && !termCharacterMatchFound; termIndex++) {
8313
                final char termChar = termLowerCase.charAt(termIndex);
8314
8315 1 1. getFuzzyDistance : negated conditional → KILLED
                if (queryChar == termChar) {
8316
                    // simple character matches result in one point
8317 1 1. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
                    score++;
8318
8319
                    // subsequent character matches further improve
8320
                    // the score.
8321 2 1. getFuzzyDistance : Replaced integer addition with subtraction → KILLED
2. getFuzzyDistance : negated conditional → KILLED
                    if (previousMatchingCharacterIndex + 1 == termIndex) {
8322 1 1. getFuzzyDistance : Changed increment from 2 to -2 → KILLED
                        score += 2;
8323
                    }
8324
8325
                    previousMatchingCharacterIndex = termIndex;
8326
8327
                    // we can leave the nested loop. Every character in the
8328
                    // query can match at most one character in the term.
8329
                    termCharacterMatchFound = true;
8330
                }
8331
            }
8332
        }
8333
8334 1 1. getFuzzyDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return score;
8335
    }
8336
8337
    // startsWith
8338
    //-----------------------------------------------------------------------
8339
8340
    /**
8341
     * <p>Check if a CharSequence starts with a specified prefix.</p>
8342
     *
8343
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8344
     * references are considered to be equal. The comparison is case sensitive.</p>
8345
     *
8346
     * <pre>
8347
     * StringUtils.startsWith(null, null)      = true
8348
     * StringUtils.startsWith(null, "abc")     = false
8349
     * StringUtils.startsWith("abcdef", null)  = false
8350
     * StringUtils.startsWith("abcdef", "abc") = true
8351
     * StringUtils.startsWith("ABCDEF", "abc") = false
8352
     * </pre>
8353
     *
8354
     * @see java.lang.String#startsWith(String)
8355
     * @param str  the CharSequence to check, may be null
8356
     * @param prefix the prefix to find, may be null
8357
     * @return {@code true} if the CharSequence starts with the prefix, case sensitive, or
8358
     *  both {@code null}
8359
     * @since 2.4
8360
     * @since 3.0 Changed signature from startsWith(String, String) to startsWith(CharSequence, CharSequence)
8361
     */
8362
    public static boolean startsWith(final CharSequence str, final CharSequence prefix) {
8363 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return startsWith(str, prefix, false);
8364
    }
8365
8366
    /**
8367
     * <p>Case insensitive check if a CharSequence starts with a specified prefix.</p>
8368
     *
8369
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8370
     * references are considered to be equal. The comparison is case insensitive.</p>
8371
     *
8372
     * <pre>
8373
     * StringUtils.startsWithIgnoreCase(null, null)      = true
8374
     * StringUtils.startsWithIgnoreCase(null, "abc")     = false
8375
     * StringUtils.startsWithIgnoreCase("abcdef", null)  = false
8376
     * StringUtils.startsWithIgnoreCase("abcdef", "abc") = true
8377
     * StringUtils.startsWithIgnoreCase("ABCDEF", "abc") = true
8378
     * </pre>
8379
     *
8380
     * @see java.lang.String#startsWith(String)
8381
     * @param str  the CharSequence to check, may be null
8382
     * @param prefix the prefix to find, may be null
8383
     * @return {@code true} if the CharSequence starts with the prefix, case insensitive, or
8384
     *  both {@code null}
8385
     * @since 2.4
8386
     * @since 3.0 Changed signature from startsWithIgnoreCase(String, String) to startsWithIgnoreCase(CharSequence, CharSequence)
8387
     */
8388
    public static boolean startsWithIgnoreCase(final CharSequence str, final CharSequence prefix) {
8389 1 1. startsWithIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return startsWith(str, prefix, true);
8390
    }
8391
8392
    /**
8393
     * <p>Check if a CharSequence starts with a specified prefix (optionally case insensitive).</p>
8394
     *
8395
     * @see java.lang.String#startsWith(String)
8396
     * @param str  the CharSequence to check, may be null
8397
     * @param prefix the prefix to find, may be null
8398
     * @param ignoreCase indicates whether the compare should ignore case
8399
     *  (case insensitive) or not.
8400
     * @return {@code true} if the CharSequence starts with the prefix or
8401
     *  both {@code null}
8402
     */
8403
    private static boolean startsWith(final CharSequence str, final CharSequence prefix, final boolean ignoreCase) {
8404 2 1. startsWith : negated conditional → KILLED
2. startsWith : negated conditional → KILLED
        if (str == null || prefix == null) {
8405 3 1. startsWith : negated conditional → KILLED
2. startsWith : negated conditional → KILLED
3. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str == null && prefix == null;
8406
        }
8407 2 1. startsWith : changed conditional boundary → SURVIVED
2. startsWith : negated conditional → KILLED
        if (prefix.length() > str.length()) {
8408 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8409
        }
8410 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(str, ignoreCase, 0, prefix, 0, prefix.length());
8411
    }
8412
8413
    /**
8414
     * <p>Check if a CharSequence starts with any of the provided case-sensitive prefixes.</p>
8415
     *
8416
     * <pre>
8417
     * StringUtils.startsWithAny(null, null)      = false
8418
     * StringUtils.startsWithAny(null, new String[] {"abc"})  = false
8419
     * StringUtils.startsWithAny("abcxyz", null)     = false
8420
     * StringUtils.startsWithAny("abcxyz", new String[] {""}) = true
8421
     * StringUtils.startsWithAny("abcxyz", new String[] {"abc"}) = true
8422
     * StringUtils.startsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
8423
     * StringUtils.startsWithAny("abcxyz", null, "xyz", "ABCX") = false
8424
     * StringUtils.startsWithAny("ABCXYZ", null, "xyz", "abc") = false
8425
     * </pre>
8426
     *
8427
     * @param sequence the CharSequence to check, may be null
8428
     * @param searchStrings the case-sensitive CharSequence prefixes, may be empty or contain {@code null}
8429
     * @see StringUtils#startsWith(CharSequence, CharSequence)
8430
     * @return {@code true} if the input {@code sequence} is {@code null} AND no {@code searchStrings} are provided, or
8431
     *   the input {@code sequence} begins with any of the provided case-sensitive {@code searchStrings}.
8432
     * @since 2.5
8433
     * @since 3.0 Changed signature from startsWithAny(String, String[]) to startsWithAny(CharSequence, CharSequence...)
8434
     */
8435
    public static boolean startsWithAny(final CharSequence sequence, final CharSequence... searchStrings) {
8436 2 1. startsWithAny : negated conditional → KILLED
2. startsWithAny : negated conditional → KILLED
        if (isEmpty(sequence) || ArrayUtils.isEmpty(searchStrings)) {
8437 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8438
        }
8439 3 1. startsWithAny : changed conditional boundary → KILLED
2. startsWithAny : Changed increment from 1 to -1 → KILLED
3. startsWithAny : negated conditional → KILLED
        for (final CharSequence searchString : searchStrings) {
8440 1 1. startsWithAny : negated conditional → KILLED
            if (startsWith(sequence, searchString)) {
8441 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
8442
            }
8443
        }
8444 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
8445
    }
8446
8447
    // endsWith
8448
    //-----------------------------------------------------------------------
8449
8450
    /**
8451
     * <p>Check if a CharSequence ends with a specified suffix.</p>
8452
     *
8453
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8454
     * references are considered to be equal. The comparison is case sensitive.</p>
8455
     *
8456
     * <pre>
8457
     * StringUtils.endsWith(null, null)      = true
8458
     * StringUtils.endsWith(null, "def")     = false
8459
     * StringUtils.endsWith("abcdef", null)  = false
8460
     * StringUtils.endsWith("abcdef", "def") = true
8461
     * StringUtils.endsWith("ABCDEF", "def") = false
8462
     * StringUtils.endsWith("ABCDEF", "cde") = false
8463
     * StringUtils.endsWith("ABCDEF", "")    = true
8464
     * </pre>
8465
     *
8466
     * @see java.lang.String#endsWith(String)
8467
     * @param str  the CharSequence to check, may be null
8468
     * @param suffix the suffix to find, may be null
8469
     * @return {@code true} if the CharSequence ends with the suffix, case sensitive, or
8470
     *  both {@code null}
8471
     * @since 2.4
8472
     * @since 3.0 Changed signature from endsWith(String, String) to endsWith(CharSequence, CharSequence)
8473
     */
8474
    public static boolean endsWith(final CharSequence str, final CharSequence suffix) {
8475 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return endsWith(str, suffix, false);
8476
    }
8477
8478
    /**
8479
     * <p>Case insensitive check if a CharSequence ends with a specified suffix.</p>
8480
     *
8481
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8482
     * references are considered to be equal. The comparison is case insensitive.</p>
8483
     *
8484
     * <pre>
8485
     * StringUtils.endsWithIgnoreCase(null, null)      = true
8486
     * StringUtils.endsWithIgnoreCase(null, "def")     = false
8487
     * StringUtils.endsWithIgnoreCase("abcdef", null)  = false
8488
     * StringUtils.endsWithIgnoreCase("abcdef", "def") = true
8489
     * StringUtils.endsWithIgnoreCase("ABCDEF", "def") = true
8490
     * StringUtils.endsWithIgnoreCase("ABCDEF", "cde") = false
8491
     * </pre>
8492
     *
8493
     * @see java.lang.String#endsWith(String)
8494
     * @param str  the CharSequence to check, may be null
8495
     * @param suffix the suffix to find, may be null
8496
     * @return {@code true} if the CharSequence ends with the suffix, case insensitive, or
8497
     *  both {@code null}
8498
     * @since 2.4
8499
     * @since 3.0 Changed signature from endsWithIgnoreCase(String, String) to endsWithIgnoreCase(CharSequence, CharSequence)
8500
     */
8501
    public static boolean endsWithIgnoreCase(final CharSequence str, final CharSequence suffix) {
8502 1 1. endsWithIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return endsWith(str, suffix, true);
8503
    }
8504
8505
    /**
8506
     * <p>Check if a CharSequence ends with a specified suffix (optionally case insensitive).</p>
8507
     *
8508
     * @see java.lang.String#endsWith(String)
8509
     * @param str  the CharSequence to check, may be null
8510
     * @param suffix the suffix to find, may be null
8511
     * @param ignoreCase indicates whether the compare should ignore case
8512
     *  (case insensitive) or not.
8513
     * @return {@code true} if the CharSequence starts with the prefix or
8514
     *  both {@code null}
8515
     */
8516
    private static boolean endsWith(final CharSequence str, final CharSequence suffix, final boolean ignoreCase) {
8517 2 1. endsWith : negated conditional → KILLED
2. endsWith : negated conditional → KILLED
        if (str == null || suffix == null) {
8518 3 1. endsWith : negated conditional → KILLED
2. endsWith : negated conditional → KILLED
3. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str == null && suffix == null;
8519
        }
8520 2 1. endsWith : changed conditional boundary → SURVIVED
2. endsWith : negated conditional → KILLED
        if (suffix.length() > str.length()) {
8521 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8522
        }
8523 1 1. endsWith : Replaced integer subtraction with addition → KILLED
        final int strOffset = str.length() - suffix.length();
8524 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(str, ignoreCase, strOffset, suffix, 0, suffix.length());
8525
    }
8526
8527
    /**
8528
     * <p>
8529
     * Similar to <a
8530
     * href="http://www.w3.org/TR/xpath/#function-normalize-space">http://www.w3.org/TR/xpath/#function-normalize
8531
     * -space</a>
8532
     * </p>
8533
     * <p>
8534
     * The function returns the argument string with whitespace normalized by using
8535
     * <code>{@link #trim(String)}</code> to remove leading and trailing whitespace
8536
     * and then replacing sequences of whitespace characters by a single space.
8537
     * </p>
8538
     * In XML Whitespace characters are the same as those allowed by the <a
8539
     * href="http://www.w3.org/TR/REC-xml/#NT-S">S</a> production, which is S ::= (#x20 | #x9 | #xD | #xA)+
8540
     * <p>
8541
     * Java's regexp pattern \s defines whitespace as [ \t\n\x0B\f\r]
8542
     *
8543
     * <p>For reference:</p>
8544
     * <ul>
8545
     * <li>\x0B = vertical tab</li>
8546
     * <li>\f = #xC = form feed</li>
8547
     * <li>#x20 = space</li>
8548
     * <li>#x9 = \t</li>
8549
     * <li>#xA = \n</li>
8550
     * <li>#xD = \r</li>
8551
     * </ul>
8552
     *
8553
     * <p>
8554
     * The difference is that Java's whitespace includes vertical tab and form feed, which this functional will also
8555
     * normalize. Additionally <code>{@link #trim(String)}</code> removes control characters (char &lt;= 32) from both
8556
     * ends of this String.
8557
     * </p>
8558
     *
8559
     * @see Pattern
8560
     * @see #trim(String)
8561
     * @see <a
8562
     *      href="http://www.w3.org/TR/xpath/#function-normalize-space">http://www.w3.org/TR/xpath/#function-normalize-space</a>
8563
     * @param str the source String to normalize whitespaces from, may be null
8564
     * @return the modified string with whitespace normalized, {@code null} if null String input
8565
     *
8566
     * @since 3.0
8567
     */
8568
    public static String normalizeSpace(final String str) {
8569
        // LANG-1020: Improved performance significantly by normalizing manually instead of using regex
8570
        // See https://github.com/librucha/commons-lang-normalizespaces-benchmark for performance test
8571 1 1. normalizeSpace : negated conditional → KILLED
        if (isEmpty(str)) {
8572 1 1. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8573
        }
8574
        final int size = str.length();
8575
        final char[] newChars = new char[size];
8576
        int count = 0;
8577
        int whitespacesCount = 0;
8578
        boolean startWhitespaces = true;
8579 3 1. normalizeSpace : changed conditional boundary → KILLED
2. normalizeSpace : Changed increment from 1 to -1 → KILLED
3. normalizeSpace : negated conditional → KILLED
        for (int i = 0; i < size; i++) {
8580
            final char actualChar = str.charAt(i);
8581
            final boolean isWhitespace = Character.isWhitespace(actualChar);
8582 1 1. normalizeSpace : negated conditional → KILLED
            if (!isWhitespace) {
8583
                startWhitespaces = false;
8584 2 1. normalizeSpace : Changed increment from 1 to -1 → KILLED
2. normalizeSpace : negated conditional → KILLED
                newChars[count++] = (actualChar == 160 ? 32 : actualChar);
8585
                whitespacesCount = 0;
8586
            } else {
8587 2 1. normalizeSpace : negated conditional → KILLED
2. normalizeSpace : negated conditional → KILLED
                if (whitespacesCount == 0 && !startWhitespaces) {
8588 1 1. normalizeSpace : Changed increment from 1 to -1 → KILLED
                    newChars[count++] = SPACE.charAt(0);
8589
                }
8590 1 1. normalizeSpace : Changed increment from 1 to -1 → SURVIVED
                whitespacesCount++;
8591
            }
8592
        }
8593 1 1. normalizeSpace : negated conditional → KILLED
        if (startWhitespaces) {
8594 1 1. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
8595
        }
8596 4 1. normalizeSpace : Replaced integer subtraction with addition → SURVIVED
2. normalizeSpace : changed conditional boundary → KILLED
3. normalizeSpace : negated conditional → KILLED
4. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newChars, 0, count - (whitespacesCount > 0 ? 1 : 0)).trim();
8597
    }
8598
8599
    /**
8600
     * <p>Check if a CharSequence ends with any of the provided case-sensitive suffixes.</p>
8601
     *
8602
     * <pre>
8603
     * StringUtils.endsWithAny(null, null)      = false
8604
     * StringUtils.endsWithAny(null, new String[] {"abc"})  = false
8605
     * StringUtils.endsWithAny("abcxyz", null)     = false
8606
     * StringUtils.endsWithAny("abcxyz", new String[] {""}) = true
8607
     * StringUtils.endsWithAny("abcxyz", new String[] {"xyz"}) = true
8608
     * StringUtils.endsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
8609
     * StringUtils.endsWithAny("abcXYZ", "def", "XYZ") = true
8610
     * StringUtils.endsWithAny("abcXYZ", "def", "xyz") = false
8611
     * </pre>
8612
     *
8613
     * @param sequence  the CharSequence to check, may be null
8614
     * @param searchStrings the case-sensitive CharSequences to find, may be empty or contain {@code null}
8615
     * @see StringUtils#endsWith(CharSequence, CharSequence)
8616
     * @return {@code true} if the input {@code sequence} is {@code null} AND no {@code searchStrings} are provided, or
8617
     *   the input {@code sequence} ends in any of the provided case-sensitive {@code searchStrings}.
8618
     * @since 3.0
8619
     */
8620
    public static boolean endsWithAny(final CharSequence sequence, final CharSequence... searchStrings) {
8621 2 1. endsWithAny : negated conditional → KILLED
2. endsWithAny : negated conditional → KILLED
        if (isEmpty(sequence) || ArrayUtils.isEmpty(searchStrings)) {
8622 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8623
        }
8624 3 1. endsWithAny : changed conditional boundary → KILLED
2. endsWithAny : Changed increment from 1 to -1 → KILLED
3. endsWithAny : negated conditional → KILLED
        for (final CharSequence searchString : searchStrings) {
8625 1 1. endsWithAny : negated conditional → KILLED
            if (endsWith(sequence, searchString)) {
8626 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
8627
            }
8628
        }
8629 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
8630
    }
8631
8632
    /**
8633
     * Appends the suffix to the end of the string if the string does not
8634
     * already end with the suffix.
8635
     *
8636
     * @param str The string.
8637
     * @param suffix The suffix to append to the end of the string.
8638
     * @param ignoreCase Indicates whether the compare should ignore case.
8639
     * @param suffixes Additional suffixes that are valid terminators (optional).
8640
     *
8641
     * @return A new String if suffix was appended, the same string otherwise.
8642
     */
8643
    private static String appendIfMissing(final String str, final CharSequence suffix, final boolean ignoreCase, final CharSequence... suffixes) {
8644 3 1. appendIfMissing : negated conditional → KILLED
2. appendIfMissing : negated conditional → KILLED
3. appendIfMissing : negated conditional → KILLED
        if (str == null || isEmpty(suffix) || endsWith(str, suffix, ignoreCase)) {
8645 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8646
        }
8647 3 1. appendIfMissing : changed conditional boundary → SURVIVED
2. appendIfMissing : negated conditional → KILLED
3. appendIfMissing : negated conditional → KILLED
        if (suffixes != null && suffixes.length > 0) {
8648 3 1. appendIfMissing : changed conditional boundary → KILLED
2. appendIfMissing : Changed increment from 1 to -1 → KILLED
3. appendIfMissing : negated conditional → KILLED
            for (final CharSequence s : suffixes) {
8649 1 1. appendIfMissing : negated conditional → KILLED
                if (endsWith(str, s, ignoreCase)) {
8650 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
                    return str;
8651
                }
8652
            }
8653
        }
8654 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str + suffix.toString();
8655
    }
8656
8657
    /**
8658
     * Appends the suffix to the end of the string if the string does not
8659
     * already end with any of the suffixes.
8660
     *
8661
     * <pre>
8662
     * StringUtils.appendIfMissing(null, null) = null
8663
     * StringUtils.appendIfMissing("abc", null) = "abc"
8664
     * StringUtils.appendIfMissing("", "xyz") = "xyz"
8665
     * StringUtils.appendIfMissing("abc", "xyz") = "abcxyz"
8666
     * StringUtils.appendIfMissing("abcxyz", "xyz") = "abcxyz"
8667
     * StringUtils.appendIfMissing("abcXYZ", "xyz") = "abcXYZxyz"
8668
     * </pre>
8669
     * <p>With additional suffixes,</p>
8670
     * <pre>
8671
     * StringUtils.appendIfMissing(null, null, null) = null
8672
     * StringUtils.appendIfMissing("abc", null, null) = "abc"
8673
     * StringUtils.appendIfMissing("", "xyz", null) = "xyz"
8674
     * StringUtils.appendIfMissing("abc", "xyz", new CharSequence[]{null}) = "abcxyz"
8675
     * StringUtils.appendIfMissing("abc", "xyz", "") = "abc"
8676
     * StringUtils.appendIfMissing("abc", "xyz", "mno") = "abcxyz"
8677
     * StringUtils.appendIfMissing("abcxyz", "xyz", "mno") = "abcxyz"
8678
     * StringUtils.appendIfMissing("abcmno", "xyz", "mno") = "abcmno"
8679
     * StringUtils.appendIfMissing("abcXYZ", "xyz", "mno") = "abcXYZxyz"
8680
     * StringUtils.appendIfMissing("abcMNO", "xyz", "mno") = "abcMNOxyz"
8681
     * </pre>
8682
     *
8683
     * @param str The string.
8684
     * @param suffix The suffix to append to the end of the string.
8685
     * @param suffixes Additional suffixes that are valid terminators.
8686
     *
8687
     * @return A new String if suffix was appended, the same string otherwise.
8688
     *
8689
     * @since 3.2
8690
     */
8691
    public static String appendIfMissing(final String str, final CharSequence suffix, final CharSequence... suffixes) {
8692 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return appendIfMissing(str, suffix, false, suffixes);
8693
    }
8694
8695
    /**
8696
     * Appends the suffix to the end of the string if the string does not
8697
     * already end, case insensitive, with any of the suffixes.
8698
     *
8699
     * <pre>
8700
     * StringUtils.appendIfMissingIgnoreCase(null, null) = null
8701
     * StringUtils.appendIfMissingIgnoreCase("abc", null) = "abc"
8702
     * StringUtils.appendIfMissingIgnoreCase("", "xyz") = "xyz"
8703
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz") = "abcxyz"
8704
     * StringUtils.appendIfMissingIgnoreCase("abcxyz", "xyz") = "abcxyz"
8705
     * StringUtils.appendIfMissingIgnoreCase("abcXYZ", "xyz") = "abcXYZ"
8706
     * </pre>
8707
     * <p>With additional suffixes,</p>
8708
     * <pre>
8709
     * StringUtils.appendIfMissingIgnoreCase(null, null, null) = null
8710
     * StringUtils.appendIfMissingIgnoreCase("abc", null, null) = "abc"
8711
     * StringUtils.appendIfMissingIgnoreCase("", "xyz", null) = "xyz"
8712
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", new CharSequence[]{null}) = "abcxyz"
8713
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", "") = "abc"
8714
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", "mno") = "axyz"
8715
     * StringUtils.appendIfMissingIgnoreCase("abcxyz", "xyz", "mno") = "abcxyz"
8716
     * StringUtils.appendIfMissingIgnoreCase("abcmno", "xyz", "mno") = "abcmno"
8717
     * StringUtils.appendIfMissingIgnoreCase("abcXYZ", "xyz", "mno") = "abcXYZ"
8718
     * StringUtils.appendIfMissingIgnoreCase("abcMNO", "xyz", "mno") = "abcMNO"
8719
     * </pre>
8720
     *
8721
     * @param str The string.
8722
     * @param suffix The suffix to append to the end of the string.
8723
     * @param suffixes Additional suffixes that are valid terminators.
8724
     *
8725
     * @return A new String if suffix was appended, the same string otherwise.
8726
     *
8727
     * @since 3.2
8728
     */
8729
    public static String appendIfMissingIgnoreCase(final String str, final CharSequence suffix, final CharSequence... suffixes) {
8730 1 1. appendIfMissingIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return appendIfMissing(str, suffix, true, suffixes);
8731
    }
8732
8733
    /**
8734
     * Prepends the prefix to the start of the string if the string does not
8735
     * already start with any of the prefixes.
8736
     *
8737
     * @param str The string.
8738
     * @param prefix The prefix to prepend to the start of the string.
8739
     * @param ignoreCase Indicates whether the compare should ignore case.
8740
     * @param prefixes Additional prefixes that are valid (optional).
8741
     *
8742
     * @return A new String if prefix was prepended, the same string otherwise.
8743
     */
8744
    private static String prependIfMissing(final String str, final CharSequence prefix, final boolean ignoreCase, final CharSequence... prefixes) {
8745 3 1. prependIfMissing : negated conditional → KILLED
2. prependIfMissing : negated conditional → KILLED
3. prependIfMissing : negated conditional → KILLED
        if (str == null || isEmpty(prefix) || startsWith(str, prefix, ignoreCase)) {
8746 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8747
        }
8748 3 1. prependIfMissing : changed conditional boundary → SURVIVED
2. prependIfMissing : negated conditional → KILLED
3. prependIfMissing : negated conditional → KILLED
        if (prefixes != null && prefixes.length > 0) {
8749 3 1. prependIfMissing : changed conditional boundary → KILLED
2. prependIfMissing : Changed increment from 1 to -1 → KILLED
3. prependIfMissing : negated conditional → KILLED
            for (final CharSequence p : prefixes) {
8750 1 1. prependIfMissing : negated conditional → KILLED
                if (startsWith(str, p, ignoreCase)) {
8751 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
                    return str;
8752
                }
8753
            }
8754
        }
8755 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prefix.toString() + str;
8756
    }
8757
8758
    /**
8759
     * Prepends the prefix to the start of the string if the string does not
8760
     * already start with any of the prefixes.
8761
     *
8762
     * <pre>
8763
     * StringUtils.prependIfMissing(null, null) = null
8764
     * StringUtils.prependIfMissing("abc", null) = "abc"
8765
     * StringUtils.prependIfMissing("", "xyz") = "xyz"
8766
     * StringUtils.prependIfMissing("abc", "xyz") = "xyzabc"
8767
     * StringUtils.prependIfMissing("xyzabc", "xyz") = "xyzabc"
8768
     * StringUtils.prependIfMissing("XYZabc", "xyz") = "xyzXYZabc"
8769
     * </pre>
8770
     * <p>With additional prefixes,</p>
8771
     * <pre>
8772
     * StringUtils.prependIfMissing(null, null, null) = null
8773
     * StringUtils.prependIfMissing("abc", null, null) = "abc"
8774
     * StringUtils.prependIfMissing("", "xyz", null) = "xyz"
8775
     * StringUtils.prependIfMissing("abc", "xyz", new CharSequence[]{null}) = "xyzabc"
8776
     * StringUtils.prependIfMissing("abc", "xyz", "") = "abc"
8777
     * StringUtils.prependIfMissing("abc", "xyz", "mno") = "xyzabc"
8778
     * StringUtils.prependIfMissing("xyzabc", "xyz", "mno") = "xyzabc"
8779
     * StringUtils.prependIfMissing("mnoabc", "xyz", "mno") = "mnoabc"
8780
     * StringUtils.prependIfMissing("XYZabc", "xyz", "mno") = "xyzXYZabc"
8781
     * StringUtils.prependIfMissing("MNOabc", "xyz", "mno") = "xyzMNOabc"
8782
     * </pre>
8783
     *
8784
     * @param str The string.
8785
     * @param prefix The prefix to prepend to the start of the string.
8786
     * @param prefixes Additional prefixes that are valid.
8787
     *
8788
     * @return A new String if prefix was prepended, the same string otherwise.
8789
     *
8790
     * @since 3.2
8791
     */
8792
    public static String prependIfMissing(final String str, final CharSequence prefix, final CharSequence... prefixes) {
8793 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prependIfMissing(str, prefix, false, prefixes);
8794
    }
8795
8796
    /**
8797
     * Prepends the prefix to the start of the string if the string does not
8798
     * already start, case insensitive, with any of the prefixes.
8799
     *
8800
     * <pre>
8801
     * StringUtils.prependIfMissingIgnoreCase(null, null) = null
8802
     * StringUtils.prependIfMissingIgnoreCase("abc", null) = "abc"
8803
     * StringUtils.prependIfMissingIgnoreCase("", "xyz") = "xyz"
8804
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz") = "xyzabc"
8805
     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz") = "xyzabc"
8806
     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz") = "XYZabc"
8807
     * </pre>
8808
     * <p>With additional prefixes,</p>
8809
     * <pre>
8810
     * StringUtils.prependIfMissingIgnoreCase(null, null, null) = null
8811
     * StringUtils.prependIfMissingIgnoreCase("abc", null, null) = "abc"
8812
     * StringUtils.prependIfMissingIgnoreCase("", "xyz", null) = "xyz"
8813
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", new CharSequence[]{null}) = "xyzabc"
8814
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "") = "abc"
8815
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "mno") = "xyzabc"
8816
     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz", "mno") = "xyzabc"
8817
     * StringUtils.prependIfMissingIgnoreCase("mnoabc", "xyz", "mno") = "mnoabc"
8818
     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz", "mno") = "XYZabc"
8819
     * StringUtils.prependIfMissingIgnoreCase("MNOabc", "xyz", "mno") = "MNOabc"
8820
     * </pre>
8821
     *
8822
     * @param str The string.
8823
     * @param prefix The prefix to prepend to the start of the string.
8824
     * @param prefixes Additional prefixes that are valid (optional).
8825
     *
8826
     * @return A new String if prefix was prepended, the same string otherwise.
8827
     *
8828
     * @since 3.2
8829
     */
8830
    public static String prependIfMissingIgnoreCase(final String str, final CharSequence prefix, final CharSequence... prefixes) {
8831 1 1. prependIfMissingIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prependIfMissing(str, prefix, true, prefixes);
8832
    }
8833
8834
    /**
8835
     * Converts a <code>byte[]</code> to a String using the specified character encoding.
8836
     *
8837
     * @param bytes
8838
     *            the byte array to read from
8839
     * @param charsetName
8840
     *            the encoding to use, if null then use the platform default
8841
     * @return a new String
8842
     * @throws UnsupportedEncodingException
8843
     *             If the named charset is not supported
8844
     * @throws NullPointerException
8845
     *             if the input is null
8846
     * @deprecated use {@link StringUtils#toEncodedString(byte[], Charset)} instead of String constants in your code
8847
     * @since 3.1
8848
     */
8849
    @Deprecated
8850
    public static String toString(final byte[] bytes, final String charsetName) throws UnsupportedEncodingException {
8851 2 1. toString : negated conditional → KILLED
2. toString : mutated return of Object value for org/apache/commons/lang3/StringUtils::toString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return charsetName != null ? new String(bytes, charsetName) : new String(bytes, Charset.defaultCharset());
8852
    }
8853
8854
    /**
8855
     * Converts a <code>byte[]</code> to a String using the specified character encoding.
8856
     * 
8857
     * @param bytes
8858
     *            the byte array to read from
8859
     * @param charset
8860
     *            the encoding to use, if null then use the platform default
8861
     * @return a new String
8862
     * @throws NullPointerException
8863
     *             if {@code bytes} is null
8864
     * @since 3.2
8865
     * @since 3.3 No longer throws {@link UnsupportedEncodingException}.
8866
     */
8867
    public static String toEncodedString(final byte[] bytes, final Charset charset) {
8868 2 1. toEncodedString : negated conditional → KILLED
2. toEncodedString : mutated return of Object value for org/apache/commons/lang3/StringUtils::toEncodedString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(bytes, charset != null ? charset : Charset.defaultCharset());
8869
    }
8870
8871
    /**
8872
     * <p>
8873
     * Wraps a string with a char.
8874
     * </p>
8875
     * 
8876
     * <pre>
8877
     * StringUtils.wrap(null, *)        = null
8878
     * StringUtils.wrap("", *)          = ""
8879
     * StringUtils.wrap("ab", '\0')     = "ab"
8880
     * StringUtils.wrap("ab", 'x')      = "xabx"
8881
     * StringUtils.wrap("ab", '\'')     = "'ab'"
8882
     * StringUtils.wrap("\"ab\"", '\"') = "\"\"ab\"\""
8883
     * </pre>
8884
     * 
8885
     * @param str
8886
     *            the string to be wrapped, may be {@code null}
8887
     * @param wrapWith
8888
     *            the char that will wrap {@code str}
8889
     * @return the wrapped string, or {@code null} if {@code str==null}
8890
     * @since 3.4
8891
     */
8892
    public static String wrap(final String str, final char wrapWith) {
8893
8894 2 1. wrap : negated conditional → KILLED
2. wrap : negated conditional → KILLED
        if (isEmpty(str) || wrapWith == '\0') {
8895 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8896
        }
8897
8898 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return wrapWith + str + wrapWith;
8899
    }
8900
8901
    /**
8902
     * <p>
8903
     * Wraps a String with another String.
8904
     * </p>
8905
     * 
8906
     * <p>
8907
     * A {@code null} input String returns {@code null}.
8908
     * </p>
8909
     * 
8910
     * <pre>
8911
     * StringUtils.wrap(null, *)         = null
8912
     * StringUtils.wrap("", *)           = ""
8913
     * StringUtils.wrap("ab", null)      = "ab"
8914
     * StringUtils.wrap("ab", "x")       = "xabx"
8915
     * StringUtils.wrap("ab", "\"")      = "\"ab\""
8916
     * StringUtils.wrap("\"ab\"", "\"")  = "\"\"ab\"\""
8917
     * StringUtils.wrap("ab", "'")       = "'ab'"
8918
     * StringUtils.wrap("'abcd'", "'")   = "''abcd''"
8919
     * StringUtils.wrap("\"abcd\"", "'") = "'\"abcd\"'"
8920
     * StringUtils.wrap("'abcd'", "\"")  = "\"'abcd'\""
8921
     * </pre>
8922
     * 
8923
     * @param str
8924
     *            the String to be wrapper, may be null
8925
     * @param wrapWith
8926
     *            the String that will wrap str
8927
     * @return wrapped String, {@code null} if null String input
8928
     * @since 3.4
8929
     */
8930
    public static String wrap(final String str, final String wrapWith) {
8931
8932 2 1. wrap : negated conditional → KILLED
2. wrap : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapWith)) {
8933 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8934
        }
8935
8936 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return wrapWith.concat(str).concat(wrapWith);
8937
    }
8938
8939
    /**
8940
     * <p>
8941
     * Wraps a string with a char if that char is missing from the start or end of the given string.
8942
     * </p>
8943
     * 
8944
     * <pre>
8945
     * StringUtils.wrap(null, *)        = null
8946
     * StringUtils.wrap("", *)          = ""
8947
     * StringUtils.wrap("ab", '\0')     = "ab"
8948
     * StringUtils.wrap("ab", 'x')      = "xabx"
8949
     * StringUtils.wrap("ab", '\'')     = "'ab'"
8950
     * StringUtils.wrap("\"ab\"", '\"') = "\"ab\""
8951
     * StringUtils.wrap("/", '/')  = "/"
8952
     * StringUtils.wrap("a/b/c", '/')  = "/a/b/c/"
8953
     * StringUtils.wrap("/a/b/c", '/')  = "/a/b/c/"
8954
     * StringUtils.wrap("a/b/c/", '/')  = "/a/b/c/"
8955
     * </pre>
8956
     * 
8957
     * @param str
8958
     *            the string to be wrapped, may be {@code null}
8959
     * @param wrapWith
8960
     *            the char that will wrap {@code str}
8961
     * @return the wrapped string, or {@code null} if {@code str==null}
8962
     * @since 3.5
8963
     */
8964
    public static String wrapIfMissing(final String str, final char wrapWith) {
8965 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (isEmpty(str) || wrapWith == '\0') {
8966 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8967
        }
8968 1 1. wrapIfMissing : Replaced integer addition with subtraction → KILLED
        final StringBuilder builder = new StringBuilder(str.length() + 2);
8969 1 1. wrapIfMissing : negated conditional → KILLED
        if (str.charAt(0) != wrapWith) {
8970
            builder.append(wrapWith);
8971
        }
8972
        builder.append(str);
8973 2 1. wrapIfMissing : Replaced integer subtraction with addition → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (str.charAt(str.length() - 1) != wrapWith) {
8974
            builder.append(wrapWith);
8975
        }
8976 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
8977
    }
8978
8979
    /**
8980
     * <p>
8981
     * Wraps a string with a string if that string is missing from the start or end of the given string.
8982
     * </p>
8983
     * 
8984
     * <pre>
8985
     * StringUtils.wrap(null, *)         = null
8986
     * StringUtils.wrap("", *)           = ""
8987
     * StringUtils.wrap("ab", null)      = "ab"
8988
     * StringUtils.wrap("ab", "x")       = "xabx"
8989
     * StringUtils.wrap("ab", "\"")      = "\"ab\""
8990
     * StringUtils.wrap("\"ab\"", "\"")  = "\"ab\""
8991
     * StringUtils.wrap("ab", "'")       = "'ab'"
8992
     * StringUtils.wrap("'abcd'", "'")   = "'abcd'"
8993
     * StringUtils.wrap("\"abcd\"", "'") = "'\"abcd\"'"
8994
     * StringUtils.wrap("'abcd'", "\"")  = "\"'abcd'\""
8995
     * StringUtils.wrap("/", "/")  = "/"
8996
     * StringUtils.wrap("a/b/c", "/")  = "/a/b/c/"
8997
     * StringUtils.wrap("/a/b/c", "/")  = "/a/b/c/"
8998
     * StringUtils.wrap("a/b/c/", "/")  = "/a/b/c/"
8999
     * </pre>
9000
     * 
9001
     * @param str
9002
     *            the string to be wrapped, may be {@code null}
9003
     * @param wrapWith
9004
     *            the char that will wrap {@code str}
9005
     * @return the wrapped string, or {@code null} if {@code str==null}
9006
     * @since 3.5
9007
     */
9008
    public static String wrapIfMissing(final String str, final String wrapWith) {
9009 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapWith)) {
9010 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9011
        }
9012 2 1. wrapIfMissing : Replaced integer addition with subtraction → SURVIVED
2. wrapIfMissing : Replaced integer addition with subtraction → SURVIVED
        final StringBuilder builder = new StringBuilder(str.length() + wrapWith.length() + wrapWith.length());
9013 1 1. wrapIfMissing : negated conditional → KILLED
        if (!str.startsWith(wrapWith)) {
9014
            builder.append(wrapWith);
9015
        }
9016
        builder.append(str);
9017 1 1. wrapIfMissing : negated conditional → KILLED
        if (!str.endsWith(wrapWith)) {
9018
            builder.append(wrapWith);
9019
        }
9020 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
9021
    }
9022
9023
    /**
9024
     * <p>
9025
     * Unwraps a given string from anther string.
9026
     * </p>
9027
     *
9028
     * <pre>
9029
     * StringUtils.unwrap(null, null)         = null
9030
     * StringUtils.unwrap(null, "")           = null
9031
     * StringUtils.unwrap(null, "1")          = null
9032
     * StringUtils.unwrap("\'abc\'", "\'")    = "abc"
9033
     * StringUtils.unwrap("\"abc\"", "\"")    = "abc"
9034
     * StringUtils.unwrap("AABabcBAA", "AA")  = "BabcB"
9035
     * StringUtils.unwrap("A", "#")           = "A"
9036
     * StringUtils.unwrap("#A", "#")          = "#A"
9037
     * StringUtils.unwrap("A#", "#")          = "A#"
9038
     * </pre>
9039
     *
9040
     * @param str
9041
     *          the String to be unwrapped, can be null
9042
     * @param wrapToken
9043
     *          the String used to unwrap
9044
     * @return unwrapped String or the original string 
9045
     *          if it is not quoted properly with the wrapToken
9046
     * @since 3.6
9047
     */
9048
    public static String unwrap(final String str, final String wrapToken) {
9049 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapToken)) {
9050 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9051
        }
9052
9053 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (startsWith(str, wrapToken) && endsWith(str, wrapToken)) {
9054
            final int startIndex = str.indexOf(wrapToken);
9055
            final int endIndex = str.lastIndexOf(wrapToken);
9056
            final int wrapLength = wrapToken.length();
9057 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
            if (startIndex != -1 && endIndex != -1) {
9058 2 1. unwrap : Replaced integer addition with subtraction → KILLED
2. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(startIndex + wrapLength, endIndex);
9059
            }
9060
        }
9061
9062 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
9063
    }
9064
9065
    /**
9066
     * <p>
9067
     * Unwraps a given string from a character.
9068
     * </p>
9069
     * 
9070
     * <pre>
9071
     * StringUtils.unwrap(null, null)         = null
9072
     * StringUtils.unwrap(null, '\0')         = null
9073
     * StringUtils.unwrap(null, '1')          = null
9074
     * StringUtils.unwrap("\'abc\'", '\'')    = "abc"
9075
     * StringUtils.unwrap("AABabcBAA", 'A')  = "ABabcBA"
9076
     * StringUtils.unwrap("A", '#')           = "A"
9077
     * StringUtils.unwrap("#A", '#')          = "#A"
9078
     * StringUtils.unwrap("A#", '#')          = "A#"
9079
     * </pre>
9080
     *
9081
     * @param str
9082
     *          the String to be unwrapped, can be null
9083
     * @param wrapChar
9084
     *          the character used to unwrap
9085
     * @return unwrapped String or the original string 
9086
     *          if it is not quoted properly with the wrapChar
9087
     * @since 3.6
9088
     */
9089
    public static String unwrap(final String str, final char wrapChar) {
9090 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (isEmpty(str) || wrapChar == '\0') {
9091 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9092
        }
9093
9094 3 1. unwrap : Replaced integer subtraction with addition → KILLED
2. unwrap : negated conditional → KILLED
3. unwrap : negated conditional → KILLED
        if (str.charAt(0) == wrapChar && str.charAt(str.length() - 1) == wrapChar) {
9095
            final int startIndex = 0;
9096 1 1. unwrap : Replaced integer subtraction with addition → KILLED
            final int endIndex = str.length() - 1;
9097 1 1. unwrap : negated conditional → KILLED
            if (startIndex != -1 && endIndex != -1) {
9098 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(startIndex + 1, endIndex);
9099
            }
9100
        }
9101
9102 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
9103
    }
9104
    
9105
    
9106
    /**
9107
     * <p>Converts a {@code CharSequence} into an array of code points.</p>
9108
     * 
9109
     * <p>Valid pairs of surrogate code units will be converted into a single supplementary
9110
     * code point. Isolated surrogate code units (i.e. a high surrogate not followed by a low surrogate or
9111
     * a low surrogate not preceeded by a high surrogate) will be returned as-is.</p>
9112
     * 
9113
     * <pre>
9114
     * StringUtils.toCodePoints(null)   =  null
9115
     * StringUtils.toCodePoints("")     =  []  // empty array
9116
     * </pre>
9117
     * 
9118
     * @param str the character sequence to convert
9119
     * @return an array of code points
9120
     * @since 3.6
9121
     */
9122
    public static int[] toCodePoints(CharSequence str) {
9123 1 1. toCodePoints : negated conditional → KILLED
        if (str == null) {
9124 1 1. toCodePoints : mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
9125
        }
9126 1 1. toCodePoints : negated conditional → KILLED
        if (str.length() == 0) {
9127 1 1. toCodePoints : mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_INT_ARRAY;
9128
        }
9129
        
9130
        String s = str.toString();
9131
        int[] result = new int[s.codePointCount(0, s.length())];
9132
        int index = 0;
9133 3 1. toCodePoints : changed conditional boundary → KILLED
2. toCodePoints : Changed increment from 1 to -1 → KILLED
3. toCodePoints : negated conditional → KILLED
        for (int i = 0; i < result.length; i++) {
9134
            result[i] = s.codePointAt(index);
9135 1 1. toCodePoints : Replaced integer addition with subtraction → KILLED
            index += Character.charCount(result[i]);
9136
        }     
9137 1 1. toCodePoints : mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return result;
9138
    }    
9139
}

Mutations

210

1.1
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

229

1.1
Location : isNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

250

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

251

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

253

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

254

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

255

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

258

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

280

1.1
Location : isNoneEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNoneEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

303

1.1
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

304

1.1
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

306

1.1
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

307

1.1
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

308

1.1
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

311

1.1
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

334

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

335

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

337

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

338

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

339

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

342

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

365

1.1
Location : isNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

390

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

391

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

393

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

394

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

395

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

398

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

423

1.1
Location : isNoneBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNoneBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

448

1.1
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

449

1.1
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

451

1.1
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

452

1.1
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

453

1.1
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

456

1.1
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAllBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

485

1.1
Location : trim
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrim(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trim
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrim(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trim to ( if (x != null) null else throw new RuntimeException ) → KILLED

512

1.1
Location : trimToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToNull(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trimToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToNull(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

537

1.1
Location : trimToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToEmpty(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trimToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToEmpty(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

572

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

635

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

638

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

641

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

642

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

644

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

645

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

647

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

648

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

649

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

651

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

679

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStrip_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

706

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

707

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

710

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

736

1.1
Location : stripToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

766

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

767

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

770

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

799

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

800

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

803

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

804

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

805

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

807

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

808

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

810

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

811

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

814

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

844

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

845

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

848

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

849

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

3.3
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

850

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from -1 to 1 → KILLED

852

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

853

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

855

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

856

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

859

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

884

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

914

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

915

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

918

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
changed conditional boundary → KILLED

2.2
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

921

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

943

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

944

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED

948

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
removed call to org/apache/commons/lang3/StringUtils::convertRemainingAccentCharacters → KILLED

950

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED

954

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
changed conditional boundary → KILLED

2.2
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

955

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

958

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

989

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

990

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

992

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

993

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

995

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

996

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

998

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

999

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1001

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1026

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1027

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1028

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1029

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1030

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1031

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1033

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1072

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1110

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1111

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1113

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1114

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1116

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1117

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1119

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1160

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1203

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1204

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1206

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1207

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1209

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1210

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1212

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringStringBoolean(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1235

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1236

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1237

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1238

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1242

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1266

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1267

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1268

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1269

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1273

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1299

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1300

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1302

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1332

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1333

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1335

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1363

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1364

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1366

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1403

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1404

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1406

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1460

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1479

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

3.3
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1480

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1482

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1483

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1488

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1490

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1491

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer subtraction with addition → KILLED

1493

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

1495

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_2(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1496

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1498

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

1499

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1500

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1193(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1529

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1565

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1566

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1568

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1571

1.1
Location : indexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

1572

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1573

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1575

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1576

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1578

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3.3
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1579

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1580

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1583

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1609

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1610

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1612

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1647

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1648

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1650

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1677

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1678

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1680

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1718

1.1
Location : lastOrdinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1758

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1759

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1761

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1788

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1789

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1791

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1827

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1828

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1830

1.1
Location : lastIndexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : lastIndexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1831

1.1
Location : lastIndexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1833

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1834

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1836

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1837

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1840

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : none
Changed increment from -1 to 1 → TIMED_OUT

3.3
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1841

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1842

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1845

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1871

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1872

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1874

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

3.3
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1900

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_StringWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_StringWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1901

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1903

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_StringWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_StringWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

3.3
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_StringWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1931

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1932

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1935

1.1
Location : containsIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1936

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsIgnoreCase
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3.3
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1937

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1938

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1941

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1956

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1957

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1960

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1961

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1962

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1965

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1994

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1995

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1998

1.1
Location : indexOfAny
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2000

1.1
Location : indexOfAny
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2001

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2003

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2004

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2005

1.1
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

5.5
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2007

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2008

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2011

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2016

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2043

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2044

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2046

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2077

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2078

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2082

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2083

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2084

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2086

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2087

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2088

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2089

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2091

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2093

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

5.5
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2094

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2098

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2103

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2138

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2139

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2141

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2170

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2171

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2173

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2174

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2175

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2178

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2208

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2209

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2212

1.1
Location : indexOfAnyBut
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2214

1.1
Location : indexOfAnyBut
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2216

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2218

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2219

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2220

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

5.5
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2221

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2229

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2231

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2258

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2259

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2262

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2264

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2265

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : none
Replaced integer addition with subtraction → SURVIVED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2266

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2267

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2268

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2271

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2272

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2276

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2305

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2306

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2308

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2309

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2311

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2312

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2314

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2341

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2342

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2344

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2373

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2374

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2377

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2379

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2380

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2382

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2383

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2384

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2385

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2387

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2389

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

5.5
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2390

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2394

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2399

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2426

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2427

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2429

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2462

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2463

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2470

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2471

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2475

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2479

1.1
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2484

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2514

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2515

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2519

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2520

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2524

1.1
Location : lastIndexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2528

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2558

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2559

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2563

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2564

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2567

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2570

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2571

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2574

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2613

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2614

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2618

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2619

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2621

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2622

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2626

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2631

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2632

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2635

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2638

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2642

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2668

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2669

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2671

1.1
Location : left
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2672

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2674

1.1
Location : left
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2675

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2677

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2701

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2702

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2704

1.1
Location : right
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2705

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2707

1.1
Location : right
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2708

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2710

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2739

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2740

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2742

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

4.4
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2743

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2745

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2748

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2749

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2751

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2784

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2785

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2787

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2788

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2791

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2792

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2794

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2826

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2827

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2829

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2830

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2833

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2834

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2836

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2867

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2868

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2871

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2872

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2874

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2907

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2908

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2910

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2911

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2914

1.1
Location : substringAfterLast
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2915

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2917

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2944

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

2975

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2976

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

2979

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2980

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2981

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2982

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

2985

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3011

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3012

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3015

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3016

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3022

1.1
Location : substringsBetween
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substringsBetween
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3024

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3027

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3029

1.1
Location : substringsBetween
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3033

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3035

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3036

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3038

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3069

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3097

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3126

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3160

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3187

1.1
Location : splitByWholeSeparator
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED

3218

1.1
Location : splitByWholeSeparator
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED

3247

1.1
Location : splitByWholeSeparatorPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3280

1.1
Location : splitByWholeSeparatorPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3299

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3300

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3305

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3306

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3309

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3311

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3320

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
changed conditional boundary → TIMED_OUT

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3323

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
changed conditional boundary → TIMED_OUT

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3324

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBoolean(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3325

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3327

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3338

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3342

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3343

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3344

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3351

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
Replaced integer addition with subtraction → TIMED_OUT

3360

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3389

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3425

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3443

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3444

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3447

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3448

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3454

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3455

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3456

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3461

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3466

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3468

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3471

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3508

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3548

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3570

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3571

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3574

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3575

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3582

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3584

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3585

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3586

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3588

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3595

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3600

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3602

1.1
Location : splitWorker
Killed by : none
negated conditional → SURVIVED

3605

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3606

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3607

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3609

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3616

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3621

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3625

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3626

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3627

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3629

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3636

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3641

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3644

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3647

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3670

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3698

1.1
Location : splitByCharacterTypeCamelCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterTypeCamelCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

3716

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3717

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3719

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3720

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3726

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3728

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3731

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3732

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3733

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3734

1.1
Location : splitByCharacterType
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3738

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3743

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3744

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3773

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objects(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3799

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3800

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3802

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3831

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3832

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3834

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3863

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3864

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3866

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3895

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3896

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3898

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3927

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3928

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3930

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3959

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3960

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3962

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3991

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3992

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3994

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4023

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4024

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4026

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4057

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4058

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4060

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4061

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4062

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4064

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4065

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4066

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4069

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4073

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4108

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4109

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4111

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4112

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4113

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4115

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4116

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4117

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4122

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4157

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4158

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4160

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4161

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4162

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4164

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4165

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4166

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4171

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4206

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4207

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4209

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4210

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4211

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4213

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4214

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4215

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4220

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4255

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4256

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4258

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4259

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4260

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4262

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4263

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4264

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4269

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4304

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4305

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4307

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4308

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4309

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4311

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4312

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4313

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4318

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4353

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4354

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4356

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4357

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4358

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4360

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4361

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4362

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4367

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4402

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4403

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4405

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4406

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4407

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4409

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4410

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4411

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4416

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4444

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4445

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4447

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4486

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4487

1.1
Location : join
Killed by : none
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

4489

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4495

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4496

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4497

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4500

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4502

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4503

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4506

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4510

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4530

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4531

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4533

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4534

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4537

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4539

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4544

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4548

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4551

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4556

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4575

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4576

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4578

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4579

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4582

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4584

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4589

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4593

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4594

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4598

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4602

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4620

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4621

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4623

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4641

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4642

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4644

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4668

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWithThrowsException(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4677

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4681

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4686

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::joinWith to ( if (x != null) null else throw new RuntimeException ) → KILLED

4706

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4707

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4712

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4713

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4714

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4717

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4718

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4720

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4750

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4751

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4753

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4754

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4756

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4785

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4786

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4788

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4789

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4791

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4819

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4820

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4822

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4823

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4825

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4855

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4856

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4858

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4859

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4861

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4888

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4889

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4891

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4928

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4929

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4931

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4954

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4955

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4959

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4960

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4961

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4964

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

5011

1.1
Location : removeAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5057

1.1
Location : removeFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5086

1.1
Location : replaceOnce
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnce to ( if (x != null) null else throw new RuntimeException ) → KILLED

5115

1.1
Location : replaceOnceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnceIgnoreCase_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5158

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5159

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5161

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5195

1.1
Location : removePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5247

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5248

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5250

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5300

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5301

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5303

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5330

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5358

1.1
Location : replaceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceIgnoreCase_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5390

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5425

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5426

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceIgnoreCase_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5429

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5435

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5436

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5439

1.1
Location : replace
Killed by : none
Replaced integer subtraction with addition → SURVIVED

5440

1.1
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5441

1.1
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : replace
Killed by : none
Replaced integer multiplication with division → SURVIVED

4.4
Location : replace
Killed by : none
negated conditional → SURVIVED

5.5
Location : replace
Killed by : none
negated conditional → SURVIVED

5442

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringEscapeUtilsTest.testEscapeCsvWriter(org.apache.commons.lang3.StringEscapeUtilsTest)
Replaced integer addition with subtraction → KILLED

5443

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5445

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5446

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5452

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5485

1.1
Location : replaceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5528

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5576

1.1
Location : replaceEachRepeatedly
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5577

1.1
Location : replaceEachRepeatedly
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEachRepeatedly to ( if (x != null) null else throw new RuntimeException ) → KILLED

5636

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6.6
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5638

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5642

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5651

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5668

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5669

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5670

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5676

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5679

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5688

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5689

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5698

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

5699

1.1
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5702

1.1
Location : replaceEach
Killed by : none
Replaced integer subtraction with addition → SURVIVED

5703

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

5704

1.1
Location : replaceEach
Killed by : none
Replaced integer multiplication with division → SURVIVED

2.2
Location : replaceEach
Killed by : none
Replaced integer addition with subtraction → SURVIVED

5708

1.1
Location : replaceEach
Killed by : none
Replaced integer division with multiplication → SURVIVED

5710

1.1
Location : replaceEach
Killed by : none
Replaced integer addition with subtraction → SURVIVED

5712

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5714

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5719

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5726

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5727

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5728

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5734

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5737

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5747

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5751

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5752

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5755

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5781

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testLang623(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5782

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringCharChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5784

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testLang623(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5824

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5825

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5827

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5834

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5837

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5839

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5846

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5847

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5849

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5884

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5885

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED

5887

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5891

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5894

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5897

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5900

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5903

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5908

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : overlay
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5.5
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED

5943

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5944

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5947

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5949

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5950

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5952

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5955

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

5958

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5959

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5960

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

5962

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5963

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

5965

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5997

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

6026

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6027

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6030

1.1
Location : chop
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6031

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6033

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6036

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6037

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6039

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6068

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6069

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6071

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6072

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6075

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6076

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6078

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : repeat
Killed by : none
negated conditional → SURVIVED

6079

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6082

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer multiplication with division → KILLED

6085

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6090

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : none
Changed increment from -1 to 1 → TIMED_OUT

3.3
Location : repeat
Killed by : none
Changed increment from -1 to 1 → TIMED_OUT

4.4
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer multiplication with division → KILLED

5.5
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6.6
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6092

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6094

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6097

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6100

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6125

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6126

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6130

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6156

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6157

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6160

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

3.3
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6163

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6186

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6211

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6212

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6214

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6215

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6216

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6218

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6219

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6221

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6248

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6249

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6251

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6256

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6257

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6258

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6260

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6261

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6264

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6265

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6266

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6267

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6271

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6272

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

6274

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6298

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6323

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6324

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6326

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6327

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6328

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6330

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6331

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6333

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6360

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6361

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6363

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6368

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6369

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6370

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6372

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6373

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6376

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6377

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6378

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6379

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6383

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6384

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

6386

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6402

1.1
Location : length
Killed by : org.apache.commons.lang3.StringUtilsTest.testLength_CharBuffer(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : length
Killed by : org.apache.commons.lang3.StringUtilsTest.testLength_CharBuffer(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6431

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6459

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6460

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6463

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6464

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6465

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6467

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6469

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6499

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6500

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6502

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6506

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6507

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6508

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6510

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6512

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6537

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6538

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6540

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6560

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6561

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6563

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6586

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6587

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6589

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6609

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6610

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6612

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6638

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6639

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6644

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6646

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6651

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6652

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6654

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6655

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6657

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6683

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6684

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6689

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6691

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6696

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6697

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6699

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6700

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6702

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6733

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6734

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6740

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6743

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6745

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6747

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6752

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6753

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6755

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6781

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6782

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6786

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6787

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Changed increment from 1 to -1 → KILLED

6788

1.1
Location : countMatches
Killed by : none
Replaced integer addition with subtraction → TIMED_OUT

6790

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6813

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6814

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6818

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6819

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6820

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
Changed increment from 1 to -1 → KILLED

6823

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6849

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6850

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6853

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6854

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6855

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6858

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6884

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6885

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6888

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6889

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6890

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6893

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6919

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6920

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6923

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6924

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6925

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6928

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6954

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6955

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6958

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6959

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6960

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6963

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6993

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6994

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6997

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6998

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6999

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7002

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7037

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7038

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7041

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7042

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7043

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7046

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7076

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7077

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7080

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7081

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7082

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7085

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7111

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7112

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7115

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7116

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7117

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7120

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7146

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7147

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7150

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7151

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7152

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7155

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7181

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7182

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7185

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7186

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7187

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7190

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7212

1.1
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED

7233

1.1
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED

7257

1.1
Location : defaultIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfBlank to ( if (x != null) null else throw new RuntimeException ) → KILLED

7279

1.1
Location : defaultIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_CharBuffers(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

7311

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7312

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7316

1.1
Location : rotate
Killed by : none
Replaced integer modulus with multiplication → SURVIVED

2.2
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7317

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7321

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
removed negation → KILLED

2.2
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

7324

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7344

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7345

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED

7347

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED

7370

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7371

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED

7376

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
removed call to org/apache/commons/lang3/ArrayUtils::reverse → KILLED

7377

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED

7415

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7455

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7495

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7536

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7537

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7541

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7542

1.1
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

7544

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7547

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7548

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7550

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7553

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7554

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : none
Replaced integer subtraction with addition → SURVIVED

7556

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7557

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7559

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7562

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7563

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7565

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7598

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7599

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7602

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

3.3
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7603

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7606

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7607

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

3.3
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7608

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7615

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7649

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7650

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7652

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7653

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7656

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7657

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7659

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7688

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7689

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7691

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7692

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7695

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4.4
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7696

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7700

1.1
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7701

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7703

1.1
Location : indexOfDifference
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

7739

1.1
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7740

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7751

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7752

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7763

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7764

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7768

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7769

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7774

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7776

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7777

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7782

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7787

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7791

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7793

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7830

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7831

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7834

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7836

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7837

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7839

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7840

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7842

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7845

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7884

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7891

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7892

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7893

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7894

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7897

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

7906

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7916

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

7920

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7922

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7925

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7927

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7929

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7934

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7970

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_NullStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringNullInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7973

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringNegativeInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8025

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8026

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8027

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8028

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8031

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8032

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8035

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

8044

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8045

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8049

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8050

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

8055

1.1
Location : getLevenshteinDistance
Killed by : none
removed call to java/util/Arrays::fill → SURVIVED

8056

1.1
Location : getLevenshteinDistance
Killed by : none
removed call to java/util/Arrays::fill → SURVIVED

8059

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8060

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8064

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8065

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8068

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8069

1.1
Location : getLevenshteinDistance
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

8073

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8074

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8078

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8079

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8081

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8084

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8096

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8097

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8099

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8139

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8145

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8146

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED

8148

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

4.4
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

6.6
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

8149

1.1
Location : getJaroWinklerDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

4.4
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

6.6
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8150

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED

8188

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8194

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8195

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED

8197

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

4.4
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

6.6
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

8198

1.1
Location : getJaroWinklerSimilarity
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

4.4
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

6.6
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8199

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED

8204

1.1
Location : matches
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8211

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8213

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
removed call to java/util/Arrays::fill → KILLED

8216

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8218

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5.5
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6.6
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8219

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8222

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8229

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8230

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8232

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8235

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8236

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8238

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8242

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8243

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8244

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8248

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8249

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8250

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8255

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::matches to ( if (x != null) null else throw new RuntimeException ) → KILLED

8285

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance_NullStringLocale(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance_StringNullLoclae(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8287

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance_StringStringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8308

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8312

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8315

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8317

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8321

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8322

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 2 to -2 → KILLED

8334

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8363

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8389

1.1
Location : startsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8404

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8405

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWith(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

3.3
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8407

1.1
Location : startsWith
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8408

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8410

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8436

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

2.2
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8437

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8439

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
changed conditional boundary → KILLED

2.2
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8440

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8441

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8444

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8475

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8502

1.1
Location : endsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8517

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8518

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWith(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

3.3
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8520

1.1
Location : endsWith
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8521

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8523

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8524

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8571

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8572

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8579

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8582

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8584

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8587

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8588

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8590

1.1
Location : normalizeSpace
Killed by : none
Changed increment from 1 to -1 → SURVIVED

8593

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8594

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8596

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : normalizeSpace
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8621

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

2.2
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8622

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8624

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
changed conditional boundary → KILLED

2.2
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8625

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8626

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8629

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8644

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8645

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8647

1.1
Location : appendIfMissing
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8648

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8649

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8650

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8654

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8692

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8730

1.1
Location : appendIfMissingIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

8745

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8746

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8748

1.1
Location : prependIfMissing
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8749

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8750

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8751

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8755

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8793

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8831

1.1
Location : prependIfMissingIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

8851

1.1
Location : toString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : toString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toString to ( if (x != null) null else throw new RuntimeException ) → KILLED

8868

1.1
Location : toEncodedString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToEncodedString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : toEncodedString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToEncodedString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toEncodedString to ( if (x != null) null else throw new RuntimeException ) → KILLED

8894

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8895

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8898

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8932

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8933

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8936

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8965

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8966

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8968

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8969

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8973

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8976

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9009

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9010

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9012

1.1
Location : wrapIfMissing
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2.2
Location : wrapIfMissing
Killed by : none
Replaced integer addition with subtraction → SURVIVED

9013

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9017

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9020

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9049

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9050

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9053

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9057

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9058

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9062

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9090

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9091

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9094

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9096

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

9097

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9098

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9102

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9123

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9124

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED

9126

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9127

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED

9133

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9135

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

9137

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED

Active mutators

Tests examined


Report generated by PIT 1.1.10